JavaScript只从字符串返回正则表达式

时间:2013-03-31 23:59:23

标签: javascript regex

这可能很简单,但我很难用它。请考虑以下代码:

var string = 'testingT#$^%#$ESTING__--232'
string = string.match(/^\w*$/)
if (string != null)
{
    string = string.join('')
    string = string.toUpperCase()
}
$('#my-input').val(string)

我想要做的是从string中删除所有不是字母数字或下划线的字符,然后将该字符串转换为大写。

到目前为止,我做到了这一点,如果我不添加任何特殊字符,它会完美运行,但是当我向其添加-^时,它会删除{{1 }}

3 个答案:

答案 0 :(得分:3)

您可以一步完成:

string = string.replace(/[^\w]/g, '').toUpperCase();
console.log(string); //=> "TESTINGTESTING__232"

答案 1 :(得分:1)

var string = string.replace(/[^a-zA-Z_0-9]/g,'').toUpperCase()

另外,你需要unicode吗?我的正则表达式只匹配a-z,而不是åÉø。

答案 2 :(得分:1)

你需要在正则表达式中使用'global'标志并删除匹配限制。

var str = 'testingT#$^%#$ESTING__--232';
str = str.match(/\w+/g);    
if (str !== null)
{
    str = str.join('');
    str = str.toUpperCase();
}
$('#my-input').val(str);