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>
我正在尝试对某些可能包含也可能不包含 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>