我正在使用JavaScript RegEx来过滤输入(白名单只有可接受的字符)。当.match()返回一个数组时,我发现将字符串“粘合”在一起的最佳方法如下,这看起来很难看,因为我必须删除逗号。
myString.match(/[A-Za-z-_0-9]/g).toString().replace(/,/g,'')
JS中有更好的RegEx方法,还是处理数组的更好方法(例如Ruby中的.join)?
由于 布赖恩
答案 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, "")
这将删除任何非字母数字,短划线或下划线的字符。