这可能很简单,但我很难用它。请考虑以下代码:
var string = 'testingT#$^%#$ESTING__--232'
string = string.match(/^\w*$/)
if (string != null)
{
string = string.join('')
string = string.toUpperCase()
}
$('#my-input').val(string)
我想要做的是从string
中删除所有不是字母数字或下划线的字符,然后将该字符串转换为大写。
到目前为止,我做到了这一点,如果我不添加任何特殊字符,它会完美运行,但是当我向其添加-
或^
时,它会删除{{1 }}
答案 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);