我尝试显示特定字符串中字母以外的字符,但它只显示第一个字符。
var myArray = /[^a-zA-Z]+/g.exec("cdAbb#2547dbsbz78678");
最佳答案
它只显示第一个字符的原因是因为使用 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, '');
关于javascript - 使用正则表达式显示字母以外的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23254519/