我有一个字符串
var str = "{CPARTY_<BPARTY+_DPARTY}";
Run Code Online (Sandbox Code Playgroud)
我需要在主字符串(str)中找到下面字符串(find)的所有出现.
var find = "{CPARTY_<BPARTY+_DPARTY}";
Run Code Online (Sandbox Code Playgroud)
并用下面的字符串替换它.
var replace = "<span><div ng-click='myClick($event)' title='null' data-token='CPARTY_<BPARTY+_DPARTY' style='display: inline;'>{CPARTY_<BPARTY+_DPARTY}</div></span>";
Run Code Online (Sandbox Code Playgroud)
这不起作用.这意味着没有更换.没有异常抛出.
str = str.replace(new RegExp(find, 'g'), replace);
Run Code Online (Sandbox Code Playgroud)
这有效.
str = str.replace(find, replace);
Run Code Online (Sandbox Code Playgroud)
我想使用替换所有语法.我已经意识到它与特殊字符<和$ lt;有关.如果我没有<和$ lt; ,没有问题.我知道这是非常愚蠢但却无法理解的事情.
jsFiddle https://jsfiddle.net/848c1as4/9/
几个字符在正则表达式中具有特殊含义.例如,+和(.在RegExp中使用它之前,您必须通过转义它们来对待它们.
var str = "{CPARTY_<BPARTY+_DPARTY}";
var find = "{CPARTY_<BPARTY+_DPARTY}";
var safeFind = find.replace(/([\/\,\!\\\^\$\{\}\[\]\(\)\.\*\+\?\|\<\>\-\&])/g,"\\$&");
var replace = "<span><div ng-click='myClick($event)' title='null' data-token='CPARTY_<BPARTY+_DPARTY' style='display: inline;'>{CPARTY_<BPARTY+_DPARTY}</div></span>";
str = str.replace(new RegExp(safeFind, 'g'), replace);
Run Code Online (Sandbox Code Playgroud)
(来源)
| 归档时间: |
|
| 查看次数: |
188 次 |
| 最近记录: |