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

EHe*_*man 26 javascript regex

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

var name = name.replace(/[^a-zA-Z ]/, "");
Run Code Online (Sandbox Code Playgroud)

但它似乎正在移除第一个数字并留下所有其他数字.

例如:

name = "collection1234"; //=> collection234
Run Code Online (Sandbox Code Playgroud)

要么

name = "1234567"; //=> 234567
Run Code Online (Sandbox Code Playgroud)

Jer*_*rry 44

使用全局标志:

var name = name.replace(/[^a-zA-Z ]/g, "");
                                    ^
Run Code Online (Sandbox Code Playgroud)

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

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

  • 我想我问错了,我想在字符串中保留所有数字,但只去掉像 ! @ # $ % ^ & * ( 所以`collection#24 会返回collection24` (2认同)
  • @EHerman忘掉你想要剥离的角色."特殊人物"非常不精确.你想保留哪些角色? (2认同)

小智 15

要删除特殊字符,请尝试

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

  • 这不会删除空格!! (3认同)

Ron*_*eld 8

如果您不介意将下划线包含为允许的字符,您可以尝试简单地:

result = subject.replace(/\W+/g, "");
Run Code Online (Sandbox Code Playgroud)

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

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

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


Bal*_*aji 8

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

步骤1

[]
Run Code Online (Sandbox Code Playgroud)

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

[@]
Run Code Online (Sandbox Code Playgroud)

步骤3:

var name = name.replace(/[@]/g, "");
Run Code Online (Sandbox Code Playgroud)

就是这样

额外提示

删除空格(在方括号中添加一个空格,如 []=>[ ])

[@ ]
Run Code Online (Sandbox Code Playgroud)

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

[^place u dont want to remove]
Run Code Online (Sandbox Code Playgroud)

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

[^a-zA-Z ]
Run Code Online (Sandbox Code Playgroud)