JavaScript计算一个字符串在另一字符串中出现的次数/分割和正则表达式方式

JS计算一个字符串在另一字符串中出现的次数;

第一种,是用分割的方法;代码如下

var s = 'www.jsdaxue.com';
var tarNum1 = (s.split('.')).length-1;
console.log(tarNum1); //2
var tarNum2 = (s.split('w')).length-1;
console.log(tarNum2); //3

原理是:

1、通过搜索词对字符串进行分割;比如用.分割,那么字符串就变为了

[“www”, “jsdaxue”, “com”]

2、再判断数组的长度;把长度减去1 就是当前当前分隔符”.”的出现次数;

第二种方法是用正则来做

var s = 'www.jsdaxue.com.cn.xx.fm.com';
function patch(re,s){
re=eval("/"+re+"/ig");
if(s.match(re)){
return s.match(re).length;
}else{
return 0;
}
}
console.log(patch('t',s)); //弹出0
console.log(patch('c',s)); //弹出3
console.log(patch('www',s)); //弹出1
console.log(patch('.c',s)); //弹出3
console.log(patch('\\.',s)); //弹出6 // 因为单独一个点是元字符,所以需要转义,为了偷懒我在这里写了,其实该在函数内判断的

这种方式的原理,就是通过正则的匹配次数来达到目的的;

但是没有完善,如果您搜的是元字符,比如点,需要进行转义;

这个一般要在函数内完成的;

因为偷懒,加上仅仅为了演示思路,所以在外面用的时候转义了,其实该在内部进行转义的;

嗯,思路基本就这些

~end~

~~

未经允许不得转载:WEB前端开发 » JavaScript计算一个字符串在另一字符串中出现的次数/分割和正则表达式方式

赞 (0)