我正在尝试对某些可能有或没有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标签包裹。怎么样?
谢谢
答案 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>