1
我試圖在特定字符串中顯示除字母之外的字符,但它只顯示第一個字符。顯示字母而不是使用指令表達式的字符
var myArray = /[^a-zA-Z]+/g.exec("cdAbb#2547dbsbz78678");
我試圖在特定字符串中顯示除字母之外的字符,但它只顯示第一個字符。顯示字母而不是使用指令表達式的字符
var myArray = /[^a-zA-Z]+/g.exec("cdAbb#2547dbsbz78678");
你可以這樣做:
"cdAbb#2547dbsbz78678".match(/[^a-zA-Z]+/g).join('');
//=> #254778678
RegExp.exec
與g
(全球)修改需要在循環中運行,給你所有的比賽。
它僅顯示第一個字符的原因是因爲使用exec
和g
修飾符(全局)時,此方法用於獲取所有子匹配的循環。
var str = "cdAbb#2547dbsbz78678";
var re = /[^a-zA-Z]+/g;
var myArray;
while (myArray = re.exec(str)) {
console.log(myArray[0]);
}
輸出
#2547
78678
如果你想你可以使用下面的比賽結合起來。
var str = "cdAbb#2547dbsbz78678",
res = str.match(/[\W\d]+/g).join('');
# => "#254778678"
或做更換
str = str.replace(/[a-z]+/gi, '');
怎麼會這樣?沒有必要。 '\ W'匹配非單詞字符,'\ d'匹配數字,OP表示「除字母之外」 – hwnd
對不起,我不太瞭解這個問題! –