Javascript 使用reqular表达式显示字母以外的字符

Javascript 使用reqular表达式显示字母以外的字符,javascript,regex,Javascript,Regex,我尝试在特定字符串中显示字母以外的字符,但它只显示第一个字符 var myArray = /[^a-zA-Z]+/g.exec("cdAbb#2547dbsbz78678"); 你可以做: "cdAbb#2547dbsbz78678".match(/[^a-zA-Z]+/g).join(''); //=> #254778678 RegExp.exec和g(全局)修饰符需要在循环中运行以提供所有匹配项。之所以只显示第一个字符,是因为使用exec和g修饰符(全局),此方法用于循环中获取所有

我尝试在特定字符串中显示字母以外的字符,但它只显示第一个字符

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
匹配数字,操作说明“除字母以外”对不起,是我,我没有很好地理解这个问题!