获取一个字符在JavaScript中的出现次数
Get number of occurrences of a character in JavaScript
我有一个字符串,它使用','
来设计一些数据。现在我想计算','
在该字符串中的出现次数。我试过了:
var match = string.match('/[,]/i');
但如果我试图获得匹配数组的长度,这将使我为null。有什么想法吗?
如果需要将简单模式的出现情况检查为",那么最好不要使用正则表达式。
尝试:
var matchesCount = string.split(",").length - 1;
删除引号并添加g标志:
var str = "This, is, another, word, followed, by, some, more";
var matches = str.match(/,/g);
alert(matches.length); // 7
jsfiddle在这里:http://jsfiddle.net/jfriend00/hG2NE/
这个要点声称regexp是最有效的技术。
编辑:
然而,Job在评论中提供的性能基准表明split
技术现在更快了。所以我现在建议你这么做。
但无论如何,如果您使用regexp方法,您应该注意,如果没有匹配项,那么String::match()
将返回null,而不是您所期望的空数组:
> 'foo'.match(/o/g)
[ 'o', 'o' ]
> 'foo'.match(/o/g).length
2
> 'foo'.match(/x/g)
null
> 'foo'.match(/x/g).length
TypeError: Cannot read property 'length' of null
处理这个问题的一个简单方法是,如果结果为null,则替换一个空数组:
var count = (string.match(/,/g) || []).length;
或者这可以避免创建空数组,但需要两行代码:
var match = string.match(/,/g);
var count = match ? match.length : 0;
计算Javascript 中正则表达式的匹配数
您需要/g
全局标志
编辑:我不需要下面的"记号"。
var count = string.match(/,/g).length;
这会给出null
,因为'/[,]/i'
不是正则表达式。如MDN中所述,如果将非正则表达式传递给string.match
,则将使用new Regex(obj)
将其转换为正则表达式。
您想要的是传递实际的regex对象/[,]/i
(或简称/,/i
(。"1,2,3".match(/,/i)
在匹配方面将如您所期望的那样工作。
然而,正如Cybernate所指出的,正则表达式对于这类问题来说是过分的。更好的解决方案是拆分字符串:
var str = "1,2,3,4,5";
var len = str.split(",").length - 1;
function get_occurrence(varS,string){//Find All Occurrences
c=(string.split(varS).length - 1);
return c;
}
string="Hi, 1,2,3";
console.log(get_occurrence(",",string));
使用get_occurrence(varS,string(查找字符串中字符和字符串的出现。
使用以下代码从语句中使用","划分一些数据:
var str = "Stack,Overflow,best,for,coder"
var matchesCount = str.split(",").length;
var vallueArray = str.split(',', matchesCount);
var value1= "";
for (var i = 0 ; i < vallueArray.length; i++) {
value1= value1+ vallueArray [i] + " ";
}
document.getElementById("txt1").value = value1;
- 在JavaScript中输出转义字符
- 使用箭头键移动javascript字符
- Javascript 6字符和空格检查
- JavaScript 字符 (£) 不显示,而是显示“”
- 什么是默认的 JavaScript 字符编码
- JavaScript字符,单词和空格计数函数
- firefox中的javascript字符计数器
- 用于文本输入的Javascript字符限制计数器函数
- 通过邮寄发送的字符串的Javascript字符限制
- JavaScript字符串子类化问题
- 分割javascript字符与特定的领先和落后的字符
- Javascript字符限制-暂时显示无效字符
- JSF 2.0/Facelets——JavaScript字符被编码为html实体
- Javascript字符转换
- asp.net mvc-带参数的Javascript字符计数器功能
- Drupal更改Javascript字符集并删除元素
- 计算推特的Javascript字符数的最佳方式
- 转义 u200b(零宽度空格)和其他非法的 JavaScript 字符
- javascript字符计数器上的目标类
- Javascript字符码是否与所有或某些浏览器兼容