使用正则表达式显示字母以外的字符

时间:2014-04-23 20:25:54

标签: javascript regex

我试图在特定字符串中显示除字母之外的字符,但它只显示第一个字符。

var myArray = /[^a-zA-Z]+/g.exec("cdAbb#2547dbsbz78678");

2 个答案:

答案 0 :(得分:1)

它只显示第一个字符的原因是因为使用execg修饰符(全局),此方法用于循环以获取所有子匹配。< / 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需要在循环中运行才能为您提供所有匹配。