RegEx参考char被替换

1 javascript regex

我使用的是正则表达式替换所有字符以外"^",并" "像这样:

var s = string.replace(/[^\^ ]/g,"X");
Run Code Online (Sandbox Code Playgroud)

它可以工作,但正如你所看到的,它正在用一个替换所有非黑名单的字符X.这是暂时的.我希望能够用标签包装而不是替换所有未列入黑名单的字符.

例如,假设字符串是'foo',我想使用正则表达式导致:

<span>f</span><span>o</span><span>o</span>
Run Code Online (Sandbox Code Playgroud)

这是可能的,还是我必须手动迭代字符串并自己进行包装?

Joe*_*oey 5

你可以替换

<span>$&</span>
Run Code Online (Sandbox Code Playgroud)

$&包含整个匹配的值,因此将使用span标记包围每个不需要的字符:

>> 'foo'.replace(/[^\^ ]/g, '<span>$&</span>') 
"<span>f</span><span>o</span><span>o</span>"
Run Code Online (Sandbox Code Playgroud)

+如果你想要包围整个不需要的字符序列,你也可以在你的正则表达式中添加一个字符类:

>> 'foo'.replace(/[^\^ ]+/g, '<span>$&</span>') 
"<span>foo</span>" 
Run Code Online (Sandbox Code Playgroud)