任何现有的JavaScript框架是否都具有非正则表达式replace()
功能,或者已经将其作为一次性函数发布在Web上的某个位置?
例如,我想要替换"@!#$123=%"
,我不想担心要逃避哪些字符.大多数语言似乎都有两种替换方法.我想看到这个简单的事情.
我可能会误解你的问题,但javascript确实有 replace()
var string = '@!#$123=%'; var newstring = string.replace('@!#$123=%', 'hi');
编辑 :(见评论)第5版似乎确实有这个信息,虽然它没有显示我直接链接到它.这是相关部分:
replace()方法执行搜索和替换操作.它将正则表达式作为其第一个参数,将替换字符串作为其第二个参数.它搜索调用它的字符串以匹配指定的模式.如果正则表达式设置了g标志,则replace()方法用替换字符串替换字符串中的所有匹配项; 否则,它只替换它找到的第一个匹配.如果replace()的第一个参数是字符串而不是正则表达式,则该方法按字面搜索该字符串,而不是使用RegExp()构造函数将其转换为正则表达式,如search()所做的那样.
我在搜索非正则表达式javascript字符串replace()方法时遇到了同样的问题.我的解决方案是使用split()和join()的组合:
"some text containing regex interpreted characters: $1.00".split("$").join("£");
这使:
"一些包含正则表达式解释字符的文本:£1.00"
与replace()比较:
"some text containing regex interpreted characters: $1.00".replace(new RegExp("$"),"£")
奇怪的是:
"一些包含正则表达式解释字符的文本:$ 1.00£"