javascript - 用javascript计算点返回一半

标签 javascript regex string

我编写了一个小函数来计算字符串中某个字符出现的次数。它一直运行良好。

在我尝试数点之前,它一直给我应有的一半数。我究竟做错了什么?我没有以正确的方式转义点吗?

function count(s1, letter) {
    return (s1.length - s1.replace(new RegExp(letter, "g"), '').length) / letter.length;
}

var loc = 'http://www.domain.com/page' // I'm actually using window.location.href in practice.

var someStringWithDots = 'Yes. I want. to. place a. lot of. dots.';

var somestring = 'abbbcdefg';

count(somestring, 'b');
//returns 3 - correct

count(someStringWithDots, '\\.');
//returns 3 - incorrect

count(loc, '\\.');
//returns 1 - incorrect

最佳答案

只需使用 .match 即可:

function count(s1, letter) {
    return ( s1.match( RegExp(letter,'g') ) || [] ).length;
}

count('Yes. I want. to. place a. lot of. dots.','\\.'); //=> 6

[edit] 如果找不到匹配项,.length 会抛出错误。
为此添加了一个解决方法 (... || [])

关于javascript - 用javascript计算点返回一半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4322411/

相关文章:

十进制转二进制的C程序

c++ - 将 read() 内容传递给 C++ 字符串类型

javascript - 在 Javascript 中将 xml 转换为 json

javascript - 如何使用react-adal而不是Axios从reactjs将文件发布到Web api

JavaScript 正则表达式查找 PHP 标签

java - 正则表达式无法捕获所有匹配项

javascript - 如何进一步减少加载时间(Visualforce、Apex、Angular)

Javascript获取矩阵数组的对 Angular 线

regex - 使用正则表达式优化连接

javascript - 如何将 xmlhttprequest 转换为字符串 javascript