javascript正则表达式仅限数字和字母

时间:2015-05-16 07:00:25

标签: javascript regex

这应该会自动删除不在我的正则表达式上的字符,但是如果我放入字符串asdf sd %$##$,它就不会删除任何内容,如果我放入此#sdf%#,它只会删除第一个字符。我试图让它删除那些符号/特殊字符的任何和所有实例(任何不在我的正则表达式上),但它不能一直工作。谢谢你的帮助:



function ohno(){
var pattern = new RegExp("[^a-zA-Z0-9]+");
var str = "#sdf%#"; //"asdf sd %$##$" // Try both


str = str.replace(pattern,' ');

document.getElementById('msg').innerHTML = str;
}  

  




2 个答案:

答案 0 :(得分:4)

你需要g标志来删除多个匹配项:

var pattern = new RegExp("[^a-zA-Z0-9]+", "g");

请注意,使用正则表达式文字而不是RegExp构造函数会更有效和可读:

var pattern = /[^a-zA-Z0-9]+/g;

reference

答案 1 :(得分:4)

您需要使用"g"设置全局,该标志表示应针对字符串中的所有可能匹配测试正则表达式。

new RegExp("[^a-zA-Z0-9]+", "g")

Reference

var pattern = new RegExp("[^a-zA-Z0-9]+", "g");
var str = "#sdf%#"; //"asdf sd %$##$" // Try both


str = str.replace(pattern,' ');
alert(str)