我试图在特定字符串中显示除字母之外的字符,但它只显示第一个字符。
var myArray = /[^a-zA-Z]+/g.exec("cdAbb#2547dbsbz78678");
答案 0 :(得分:1)
它只显示第一个字符的原因是因为使用exec
和g
修饰符(全局),此方法用于循环以获取所有子匹配。< / p>
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, '');
答案 1 :(得分:0)
你可以这样做:
"cdAbb#2547dbsbz78678".match(/[^a-zA-Z]+/g).join('');
//=> #254778678
带有RegExp.exec
(全局)修饰符的 g
需要在循环中运行才能为您提供所有匹配。