JavaScript RegEx到白名单字符,我的方法有多糟糕?

时间:2011-03-05 17:39:11

标签: javascript regex

我正在使用JavaScript RegEx来过滤输入(白名单只有可接受的字符)。当.match()返回一个数组时,我发现将字符串“粘合”在一起的最佳方法如下,这看起来很难看,因为我必须删除逗号。

myString.match(/[A-Za-z-_0-9]/g).toString().replace(/,/g,'')

JS中有更好的RegEx方法,还是处理数组的更好方法(例如Ruby中的.join)?

由于 布赖恩

1 个答案:

答案 0 :(得分:10)

JavaScript中也有join。例如:

myString.match(/[A-Za-z-_0-9]/g).join("")

""是数组中每个元素之间的分隔符,因此[1, 2, 3].join("")给出"123"。但是,您也可以简单地替换白名单中没有的所有字符:

myString.replace(/[^A-Za-z-_0-9]/g, "")

这将删除任何非字母数字,短划线或下划线的字符。