Flo*_*Flo 1 javascript replace case-insensitive
我想要的值不区分大小写的匹配部分query的值的范围内s大胆.
如果我发现query内s我不能简单地做:
var s="New York";
var query="new";
var result = s.replace(/query/i,'<strong>' + query + '</strong>';
Run Code Online (Sandbox Code Playgroud)
从那以后它也将用套管替换s套管query,这是我不想要的.我想把套管保持在s中.
结果将是:" 新的 York"的
如果将其设为捕获组(用括号括起来),则可以使用占位符$1:
var s="New York";
var result = s.replace(/(new)/i,'<strong>$1</strong>');
// result = <strong>New</strong> York
Run Code Online (Sandbox Code Playgroud)
看实况例子:http://jsfiddle.net/2zau4/
正如评论中指出的 - 以及我从未知道的事情 - 是你实际上不需要捕获组,因为javascript使用字符$&来表示"整个匹配".所以你也可以这样做:
var s="New York";
var result = s.replace(/new/i,'<strong>$&</strong>');
// result = <strong>New</strong> York
Run Code Online (Sandbox Code Playgroud)
作为最后一点,我假设您意识到原始语法不起作用:
var s="New York";
var query="new";
var result = s.replace(/query/i,'<strong>' + query + '</strong>';
-----------------------^
This is searching for literal "query" not
the variable query (containing the string "new")
Run Code Online (Sandbox Code Playgroud)
正确的语法必须RegExp从带有"i"标志的字符串创建一个:
var s="New York";
var query="new";
var result = s.replace(new RegExp(query,'i'),'<strong>$&</strong>');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
769 次 |
| 最近记录: |