XRegExp 替换

XRegExp replace

我正在尝试对某些可能包含也可能不包含 unicode 字符的单词进行一些字符串操作。

这是我的代码:

var regex = XRegExp("(\P{L}+)", "gui");
var s = 'no sea demásiado tarde';
var ret = XRegExp.replace(s, regex, "<span></span>");

console.log(ret);
<script src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>

但是单词没有像预期的那样被 span 标签包裹。怎么会?

谢谢

因为您用 \P{L}+ 包装非字母,因为 \P{L} 匹配 Unicode 字母以外的任何字符。

使用 "\p{L}+" 模式并替换为 <span>$&</span>$& 反向引用代表整个匹配)。

var regex = XRegExp("\p{L}+", "gui");
var s = 'no sea demásiado tarde';
var ret = XRegExp.replace(s, regex, "<span>$&</span>");

console.log(ret);
<script src="http://cdnjs.cloudflare.com/ajax/libs/xregexp/3.1.1/xregexp-all.min.js"></script>