js的replace()方法

JavaScript08

js的replace()方法,第1张

js里面的replace()函数支持字符串和正则替换。

/正则表达式/ 代表的意思。

为什么用正则呢,看你的需求,像这个demo可用直接用单引号替换字符串。

正则有其强大的作用,可以替换多个字符串,而双引号只能替换一次。

js提供的字符串替换函数replace可以将字符串中符合条件的字符串替换成目标字符串。但是一般使用字符串进行查找替换只能替换第一个符合条件的结果。如:

var str=大家都是男人吗,难道不是吗!

str=str.replace('吗','嘛')

alert(str)

var str=大家都是男人吗,难道不是吗!str=str.replace('吗','嘛')alert(str)

上述代码中只有第一个吗被替换,输出结果是大家都是男人嘛,难道不是吗!,嘿嘿!

如果想全部替换字符串中全部符合条件的内容,用正则表达式替换是个不错的办法,如下代码可以实现全部替换。

var str='大家都是男人吗,难道不是吗?'

str=str.replace(/吗/g,'嘛')

alert(str)

var str='大家都是男人吗,难道不是吗?'str=str.replace(/吗/g,'嘛')alert(str)

这样就会输出大家都是男人嘛,难道不是嘛?,全部符合条件的内容都被替换了,特别要注意的是正则表达式/吗/g这里的g,这个g表示全局,不给这个配置项是不会全部替换的。

当然通过复杂的正则表达式,js的replace还能实现更丰富的字符串替换处理效果的。

js提供一个replace方法,replace(目标字符串, 替换的字符串)

1、一般常用的,替换字符串中的"?"

var result = "abcd?efg".replace("?","")//abcdefg

console.log(result)

2、跟1比较,发现只能替换一次,一般建议用循环进行多次替换

var result2 = "abcd?efg?hijk?lmn".replace("?","")//abcdefg?hijk?lmn

console.log(result2)

3、使用正则表达式进行替换

var reg = /\?/g//创建正则,表示替换全局替换"?"

var result3 = "abcd?efg?hijk?lmn".replace(/\?/g,"")//abcdefghijklmn

console.log(result3)

补充:

正则格式:/pattern/标识符,如/\?/g,

因为?是特殊字符,需要\进行转义,然后g标识全局查找,如果不写这个,就不会进行全局替换