我想剥除除字母数字和连字符之外的所有内容.
到目前为止,我已经得到了这个,但它不起作用:
String = String.replace(/^[a-zA-Z0-9-_]+$/ig,'');
Run Code Online (Sandbox Code Playgroud)
任何帮助赞赏?
the*_*eye 10
如果你想删除除了alphanum,hypen和underscore之外的所有东西,那么否定字符类,就像这样
String = String.replace(/[^a-zA-Z0-9-_]+/ig,'');
Run Code Online (Sandbox Code Playgroud)
此外,^与$ 主播不应该存在.
除此之外,您已经在字符类本身中覆盖了大写和小写字符,因此i不需要标记.因此,RegEx成为了
String = String.replace(/[^a-zA-Z0-9-_]+/g,'');
Run Code Online (Sandbox Code Playgroud)
有一个特殊的字符类,匹配a-zA-Z0-9_,\w.你可以像这样使用它
String = String.replace(/[^\w-]+/g,'');
Run Code Online (Sandbox Code Playgroud)
由于\w没有涵盖-,我们分别包括在内.
引用MDN RegExp文档,
\ W
匹配基本拉丁字母表中的任何字母数字字符,包括下划线.相当于
[A-Za-z0-9_].例如,
/\w/相匹配'a'的"apple,"'5'中"$5.28,"和'3'在"3D."