仅在边界内替换特定字符。
例如,仅当用单引号括起来时才替换html实体。
输入:
<i>Hello</i> '<i>How are you</i>'
输出:
<i>Hello</i> '<i>How are you</i>'
答案 0 :(得分:3)
您可以将replace
与回调一起使用:
var s = "<i>Hello</i> '<i>How are you</i>'";
var r = s.replace(/('[^']+')/g, function($0, $1) {
return $1.replace(/</g, '<').replace(/>/g, '>'); });
//=> <i>Hello</i> '<i>How are you</i>';
答案 1 :(得分:0)
您需要使用多个正则表达式,首先在单引号内捕获文本,然后替换所有出现的字符。
var input = "<i>Hello</i> '<i>How are you</i>'";
var quoted = input.match(/'.*'/)[0];
var output = quoted.replace("<", "<").replace(">", ">");
// output == "<i>Hello</i> '<i>How are you</i>'"