给一段文章中的全部指定词语进行过滤
// 比如我要过滤 "SM"
var str = 'asdasdSMasdasdasdSMsdasdasdSMsadasd'
// 需要结果
// asdasd**asdasdasd**sdasdasd**
- 方法一,用spilt()方法把str分割成以SM为分界的数组,然后用join()方法把数组用**粘合成字符串,有些取巧,但是很好用
var str = 'asdasdSMasdasdasdSMsdasdasdSMsadasd' var res = str.split("SM").join("**")
- 方法二,用传统的replace方法替换内容,由于replace只能替换检索到的第一个值,所以要多次循环替换,直到indexOf检索不出来为止.
var str = 'asdasdSMasdasdasdSMsdasdasdSMsadasd' var res = str.replace("SM","**") while(res.indexOf("SM") != -1) { res = res.replace("SM","**") }
反转字符串
var str = 'abcdefg'
// 要求结果
// gfedcba
-
由于reverse方法只有在数组中使用,所以把str转变为数组,反转之后再转为字符串
var str = 'abcdefg' var res = str.split("").reverse().join("")
统计字符串中每个字符的个数
var str = 'abcdacbabcbababcbabcabd'
// 结果
// { a: 出现次数, b: 出现次数, ...}
- 这里使用的是对象的属性用变量来改变,这个方法需要用到
obj[key] = value
的方式, 这里的key是属性的变量而非对象中的属性名. 下面的判定中如果这个属性在obj中存在,就让它的值+1; 如果没存在, 就让他的值 =1
var str = 'abcdacbabcbababcbabcabd'
var obj = {}
for(var i=0;i<str.length;i++)
{
if(obj{str[i]})
obj{str[i]}++
else
obj{str[i]} = 1
}
去重
aabccd统计每个字符出现的次数,去掉重复的字符,使结果显示 abcd
- 把字符串转为数组,再排序,这样一样的值就会挨着了,再用数据两两相比,删掉其中一个就行.
var str = "aabccd"
var res = str.split("").sort()
for(var i=0; i<res.length-1; i++)
{
if(res[i] === res[i+1])
res.splice(i,1)
}
res = res.join("")
console.log(res)