正则表达式删除除数字以外的所有特殊字符?

时间:2013-12-22 17:20:46

标签: javascript regex

我想从字符串中删除所有特殊字符(数字除外)。我能够做到这一点

var name = name.replace(/[^a-zA-Z ]/, "");

但它似乎正在删除第一个号码并留下所有其他号码。

例如:

name = "collection1234"; //=> collection234

name = "1234567"; //=> 234567

5 个答案:

答案 0 :(得分:38)

使用全局标志:

var name = name.replace(/[^a-zA-Z ]/g, "");
                                    ^

如果您不想删除号码,请将其添加到班级中:

var name = name.replace(/[^a-zA-Z0-9 ]/g, "");

答案 1 :(得分:15)

要删除特殊字符,请尝试

var name = name.replace(/[!@#$%^&*]/g, "");

答案 2 :(得分:7)

如果你不介意将下划线作为允许的角色,你可以试试:

result = subject.replace(/\W+/g, "");

如果还必须排除下划线,那么

result = subject.replace(/[^A-Z0-9]+/ig, "");

(注意不区分大小写的标志)

答案 3 :(得分:3)

要删除符号,请使用标签[]

步骤:1

[]

步骤2:放置您要删除的符号,例如:@,例如[@]

[@]

步骤3:

var name = name.replace(/[@]/g, "");

就这样

var name="ggggggg@fffff"
var result = name.replace(/[@]/g, "");
console .log(result)

其他提示

要删除空格(将一个空格放到[] => []之类的方括号中)

[@ ]

它删除所有内容(使用除外)

[^place u dont want to remove]

例如:我删除除字母(小写和大写)之外的所有内容

[^a-zA-Z ]

var name="ggggg33333@#$%^&**I(((**gg@fffff"
var result = name.replace(/[^a-zA-Z]/g, "");
console .log(result)

答案 4 :(得分:0)

这应该也可以

  

text ='汽车?又大又*红色!'

     

newtext = re.sub('[^ a-z0-9]','',文本)

     

打印(新文本)

这辆车又大又红