【问题标题】:Javascript, String formatting: I need the first 4 letters of a string, lowercase, whitespace skimmed, symbols removedJavascript,字符串格式:我需要字符串的前 4 个字母,小写,略去空格,删除符号
【发布时间】:2010-07-10 09:26:46
【问题描述】:

...我应该列出它们:

  1. 前 4 个字母/数字,带...
  2. 全部小写。
  3. 空格被去除。
  4. 已删除符号。

应该很简单。最好的方法是什么?

【问题讨论】:

  • 你给出了这些操作的正确顺序吗?例如,如果你有“A B C D”,如果你遵循你的规则,你就会得到“ab”。不知何故,我认为您可能想要“abcd”。
  • 啊,对。是的,我需要在压缩为 4 个字符之前去掉空格和符号。谢谢。

标签: javascript regex string formatting


【解决方案1】:
  1. slice(0, 4)
  2. toLowerCase()
  3. replace(/\s/g, '')
  4. replace(/[^\w\s]/g, '')

第三个和第四个正则表达式可以更简单地组合为\W,以删除所有非字母数字,如果这是你想要的。如果您要删除的“符号”比这更具体,则必须明确地将它们放入字符类中,例如。 /[!"#...]/g。如果您只想删除字符串开头和结尾的空格(“修剪”):

replace(/^\s+/, '').replace(/\s+$/, '')

相反。(*)

以适当的顺序将它们链接在一起。如果您想在 删除了不需要的字符之后将其切成四个字符:

var processed= str.replace(/\W/g, '').toLowerCase().slice(0, 4);

(*: string.trim() 在 ECMAScript 第五版中也可用,但并非所有浏览器都支持它。如果您想在今天的所有浏览器上使用 string.trim(),可以将 trim() 支持更改为 String.prototype:)

if (!('trim' in String.prototype)) {
    String.prototype.trim= function() {
        return (''+this).replace(/^\s+/, '').replace(/\s+$/, '');
    };
}

【讨论】:

    【解决方案2】:

    这样的?

    "  MY STRING  ".replace(/^\s+|\s+$/g, '').substring(0,4).toLowerCase()
    

    您可以使用类似的替换方法删除所需的符号。

    【讨论】:

      【解决方案3】:

      去掉空格。

      只从末端开始,还是从整个字符串开始?以下从字符串中删除所有空格(以及除数字和字母之外的任何内容 - \w 也包括下划线)。

      str = str.replace(/[^a-z0-9]+/ig).substring(0, 4).toLowerCase();
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-01-13
        • 1970-01-01
        • 2017-08-29
        • 2015-07-16
        • 1970-01-01
        • 2016-04-23
        • 2011-06-16
        • 1970-01-01
        相关资源
        最近更新 更多