Javascript用数组和正则表达式替换方法

时间:2012-06-24 18:30:33

标签: javascript regex

我怎样才能替换除0-9 a-z之外的任何字符以及带有''(无)的某些字符数组。

我的代码看起来像这样

Var pCharArray = ['l', 'o', 'c'];//local characters
Var stringOrginal = 'Some Text';
stringOrginal.replace(/(^[0-9][a-z]pCharArray)/g, '');

不应该删除每个不是0-9 AND 而不是a-z AND 而不是pCharArray的字符。

2 个答案:

答案 0 :(得分:4)

您可以使用:

stringOrginal.replace(new RegExp("[^0-9a-z" + pCharArray.join('')+"]", 'g'), "");

注意:

Var => var (lowercase)

Live DEMO

答案 1 :(得分:3)

^字符仅在字符类中使用时表示否定,即[^ a]表示除a之外的任何字符。当它在字符类之外使用时,它表示字符串的开头。

正确的代码:

stringOrginal.replace(new RegExp("[^0-9a-z"+pCharArray.join('')+"]", 'g'), '');

另外请注意,如果你想在pCharArray数组中加入反斜杠或结束括号,你应该分别在那里说出'\\'和'\]'。