我正在使用正则表达式替换除 "^"
和 ""
之外的所有字符,如下所示:
var s = string.replace(/[^\^ ]/g,"X");
它有效,但如您所见,它用 X
替换了所有未列入黑名单的字符。这是暂时的。我希望能够用标签包装而不是替换所有未列入黑名单的字符。
例如,假设字符串是“foo”,我想使用正则表达式得到:
<span>f</span><span>o</span><span>o</span>
这可能吗,还是我必须手动遍历字符串并自己进行包装?
最佳答案
你可以替换为
<span>$&</span>
$&
包含整个匹配的值,因此将用 span
标记包围每个不需要的字符:
>> 'foo'.replace(/[^\^ ]/g, '<span>$&</span>')
"<span>f</span><span>o</span><span>o</span>"
如果您希望包围不需要的字符的整个序列,您还可以在正则表达式中的字符类之后添加 +
:
>> 'foo'.replace(/[^\^ ]+/g, '<span>$&</span>')
"<span>foo</span>"
关于javascript - RegEx 引用被替换的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8369137/