【问题标题】:How to count the number of letters in a random string? [closed]如何计算随机字符串中的字母数? [关闭]
【发布时间】:2011-09-08 14:04:04
【问题描述】:

如果有随机字符串从SERVER获取:

var str='I am a student in XXX university, I am interested...'

str 可以包含随机数量的带有空格的单词。那就是字符串的内容是不可预知的。

在 javascript 中,如何计算字符串中的字母数量(单词之间的空格排他性的)。例如“我有车”应该算 9 个字母。

【问题讨论】:

    标签: javascript-events javascript


    【解决方案1】:

    假设您只想要字母字符,请先使用 replace() 删除其他字符:

    var str='I am a student in XXX university, I am interested...';
    
    alert(str.replace(/[^A-Z]/gi, "").length);
    

    如果要将数字视为字母,可以将 0-9 添加到 [^A-Z] 字符类。如果您只想删除空格,请将正则表达式更改为/\s/g

    【讨论】:

    • 如果我想考虑空间怎么办?
    • @Mellon:如果要包含空格但不包含其他标点符号,请将字符类更改为[^ A-Z]
    【解决方案2】:

    我们分割每个空间,再次加入数组:

    var str='I am a student in XXX university, I am interested...'
    
    str = str.split(" ").join("");
    
    alert(str.length);
    

    http://jsfiddle.net/AwVBJ/

    【讨论】:

    • , 现在也是一个字母吗? :P
    • @Andrew:公平地说,OP 只明确提到了空格。不过,大概是他也不想数其他的垃圾吧。
    【解决方案3】:

    您可以使用正则表达式 \w 计算匹配数 - 它匹配任何字母数字字符或 [a-zA-Z] 匹配任何字母字符

    例如:

    var numChars = "I have a car".match(/[a-zA-Z]/g).length;
    // numChars = 9
    

    现场示例:http://jsfiddle.net/GBvCp/

    【讨论】:

    • 请注意,\w 也匹配 _,这可能需要也可能不需要。
    【解决方案4】:

    还有另一种方式:

    var str = "I have a car";   
    while (str.indexOf(' ') > 0) { 
        str = str.replace(' ' , '');
        }
    var strLength = str.length;     
    

    【讨论】:

      【解决方案5】:
      var temp = str;
      
      temp= temp.replace(/[^a-zA-Z]+/g,"");
      

      temp.length 会给你字符数

      【讨论】:

        【解决方案6】:

        计算空格的数量(例如http://p2p.wrox.com/javascript-how/70527-count-occurrence-character-string.html),然后从长度中减去。

        var testString = '我的测试字符串有多个空格'; alert('空格数:' + (testString .replace(/[^ ]/g, '').length)); alert('字符数:' + (testString.length)); alert('不包括空格的字符数:' + (testString.length - (testString .replace(/[^ ]/g, '').length)));

        注意:它正确计算了双倍空格和末尾的空格。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-09-08
          • 2019-06-04
          • 1970-01-01
          • 1970-01-01
          • 2021-04-05
          • 2012-05-30
          • 2017-04-18
          相关资源
          最近更新 更多