javascript - RegEx 引用被替换的字符

标签 javascript regex

我正在使用正则表达式替换除 "^""" 之外的所有字符,如下所示:

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/

相关文章:

javascript - 如何获取 OpenLayers 3 的高程数据?

javascript - 只是想知道 JavaScript 中的数组是什么类型?

java - Hive - 从字符串中删除子字符串

javascript - 从 URL 字符串为 URL 的每个段创建数组

regex - 仅匹配正则表达式中的字母的最佳方法是什么?

javascript - <button> 元素不在 Firefox 中传播事件?

javascript - onMouseOver 和 onMouseEnter 之间的区别

javascript - 我如何使用 JQuery 查找元素是否已加载

regex - Snort/PCRE 正则表达式 : odd character class syntax

regex - 下面的两个 sed 命令有什么区别?