XRegExp替换

时间:2016-11-08 16:35:14

标签: javascript regex xregexp

我正在尝试对某些可能有或没有unicode字符的单词进行字符串操作。

这是我的代码:

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

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

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

谢谢

1 个答案:

答案 0 :(得分:2)

因为您使用\\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>