这可能很简单,但我有一段艰难的时间。考虑以下代码:
var string = 'testingT#$^%#$ESTING__--232'
string = string.match(/^\w*$/)
if (string != null)
{
string = string.join('')
string = string.toUpperCase()
}
$('#my-input').val(string)
我想做的是,从string
中剔除所有非字母数字或下划线的字符,然后将该字符串转换为大写。
到目前为止,我这样做了,如果我不添加任何特殊字符,它可以很好地工作,但是当我向它添加-
或^
时,例如,它会删除#my-input
中的所有内容
发布于 2013-04-01 00:06:14
您可以在一个步骤中完成此操作:
string = string.replace(/[^\w]/g, '').toUpperCase();
console.log(string); //=> "TESTINGTESTING__232"
发布于 2013-04-01 00:06:59
var string = string.replace(/[^a-zA-Z_0-9]/g,'').toUpperCase()
另外,你需要unicode吗?例如,我的正则表达式将只匹配a-z,而不匹配éø。
发布于 2013-04-01 00:15:17
您需要在regex中使用'global‘标志,并删除匹配限制。
var str = 'testingT#$^%#$ESTING__--232';
str = str.match(/\w+/g);
if (str !== null)
{
str = str.join('');
str = str.toUpperCase();
}
$('#my-input').val(str);
https://stackoverflow.com/questions/15735960
复制相似问题