用replace方法的时候一直报错:replace undefined
原来是传值的时候没有深度监听,
导致replace的值是null或者undefined,就会报这种错误。
顺便回忆一下replace方法的使用:
replace()方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则匹配的字符.
1、字符替换:
但str中只有第一个o被替换成了iii,要想所有o都被替换掉该怎么办呢
2、正则替换:
在replace方法中约定了一个特殊的字符“$”,如果加了一个序号,就表示引用正则表达式中匹配的子表达式存储的字符串。
3、flags参数(只在火狐有效,不建议使用,了解即可):
包含的正则表达式标志的任意组合字符串: g - 全局匹配, i - 忽略大小写,m - 匹配多行。此参数仅用于如果所述第一参数是一个字符串。
例如全局替换o:
建议归纳:
1、首先使用replace方法要确保变量不能是null或undefined,可以增加一个判断,有值的时候才去调用方法
2、其次变量不止要有值,且必须是字符串类型,可用toString()转化成字符串类型,也要在不是null和undefined的情况下使用
3、正则替换时,第一个参数不要加引号
4、replace方法不会改变原数据,只会输出一个新的字符串