0

我如何用 '' 替换除 0-9 az 和某些字符数组之外的任何字符(什么都没有)。

我的代码看起来像这样

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

应该删除每个不是 0-9 且不是 az且不在pCharArray中的字符

4

2 回答 2

4

你可以使用这个:

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

笔记:

Var => var (lowercase)

现场演示

于 2012-06-24T18:33:05.193 回答
3

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

正确代码:

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

另请注意,如果您想在 pCharArray 数组中包含反斜杠或右括号,您应该分别在此处将它们声明为 '\\' 和 '\]'。

于 2012-06-24T18:34:34.197 回答