我想除去字母和连字符以外的所有内容。
到目前为止,我已经得到了这个,但它不起作用:String = String.replace(/^[a-zA-Z0-9-_]+$/ig,'');
任何帮助表示赞赏?
答案 0 :(得分:10)
如果你想删除除alphanum,hypen和underscore之外的所有内容,那么否定字符类,就像这样
String = String.replace(/[^a-zA-Z0-9-_]+/ig,'');
此外,^
和$
anchors不应该在那里。
除此之外,您已经在字符类本身中覆盖了大写和小写字符,因此不需要i
标志。因此,RegEx成为
String = String.replace(/[^a-zA-Z0-9-_]+/g,'');
有一个特殊的字符类,匹配a-zA-Z0-9_
,\w
。您可以像这样使用它
String = String.replace(/[^\w-]+/g,'');
由于\w
未涵盖-
,因此我们将其单独列出。
\ W
匹配基本拉丁字母表中的任何字母数字字符,包括下划线。相当于
[A-Za-z0-9_]
。例如,
}中的/\w/
匹配'a'
中的"apple,"
'5'
和"$5.28,"
中的'3'
"3D."