2016-11-08 48 views
0

我正在嘗試對可能包含或不包含unicode字符的某些單詞執行一些字符串操作。XRegExp替換

這裏是我的代碼:

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標籤包裹的預期。怎麼來的?

謝謝

回答

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>

+1

現在我很尷尬......謝謝 – Cornwell