我想使用JavaScript从字符串中删除除空格之外的所有特殊字符。
例如, 美国广播公司的测试#年代 应输出为 abc测试。
我想使用JavaScript从字符串中删除除空格之外的所有特殊字符。
例如, 美国广播公司的测试#年代 应输出为 abc测试。
当前回答
Const STR = "abc's@thy#^g&test#s"; console.log (str。replace(/[^a-zA-Z]/g, "");
其他回答
Const STR = "abc's@thy#^g&test#s"; console.log (str。replace(/[^a-zA-Z]/g, "");
你可以指定你想要删除的字符:
string = string.replace(/[&\/\\#,+()$~%.'":*?<>{}]/g, '');
或者,要更改除数字和字母以外的所有字符,请尝试:
string = string.replace(/[^a-zA-Z0-9]/g, '');
你应该使用字符串替换函数,一个单一的正则表达式。 假设你所说的特殊字符是指任何不是字母的字符,下面是一个解决方案:
Const STR = "abc's test#s"; console.log (str。replace(/[^a-zA-Z]/g, "");
我尝试了Seagul非常有创意的解决方案,但发现它也将数字视为特殊字符,这并不适合我的需求。以下是我对Seagul解决方案的(故障保险)调整……
//return true if char is a number
function isNumber (text) {
if(text) {
var reg = new RegExp('[0-9]+$');
return reg.test(text);
}
return false;
}
function removeSpecial (text) {
if(text) {
var lower = text.toLowerCase();
var upper = text.toUpperCase();
var result = "";
for(var i=0; i<lower.length; ++i) {
if(isNumber(text[i]) || (lower[i] != upper[i]) || (lower[i].trim() === '')) {
result += text[i];
}
}
return result;
}
return '';
}
搜索所有不(单词字符||空格):
str.replace(/[^\w ]/, '')