我试图对一些可能或不包含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标签所包裹。怎么会这样?
谢谢
发布于 2016-11-08 16:37:06
因为您用\\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>
https://stackoverflow.com/questions/40492060
复制相似问题