[英]Replace or Strip a specific character between two characters in javascript using regex
[英]Javascript string replace with regex to strip off illegal characters
需要一个函数去除javascript中的一组非法字符: |&;$%@"<>()+,
这是一个需要用正则表达式解决的经典问题,这意味着现在我有两个问题 。
这是我到目前为止所得到的:
var cleanString = dirtyString.replace(/\|&;\$%@"<>\(\)\+,/g, "");
我正在用反斜杠逃避正则表达式特殊字符,但我很难理解正在发生的事情。
如果我单独尝试使用单个文字,它们中的大多数似乎都可以工作,但是一旦我将它们放在同一个正则表达式中,取决于顺序,替换就会被破坏。
即这不起作用 - > dirtyString.replace(/\\|<>/g, ""):
帮助赞赏!
你需要的是角色类 。 在那里,你只需要担心]
, \\
和-
字符(如果你在字符类“ [
”)开头之后直接放置它,则为^
。
语法: [
characters ]
其中字符是包含字符的列表。
例:
var cleanString = dirtyString.replace(/[|&;$%@"<>()+,]/g, "");
我倾向于从反向角度看待它,这可能是你的意图:
我想要允许哪些字符?
这是因为可能会有许多字符以某种方式形成字符串,这是你不会想到的。
例如,这个只允许字母和数字删除无效字符组替换它们用hypen:
"This¢£«±Ÿ÷could&*()\/<>be!@#$%^bad".replace(/([^a-z0-9]+)/gi, '-');
//Result: "This-could-be-bad"
您需要将它们全部包装在一个字符类中。 当前版本意味着用空字符串替换此字符序列。 当用方括号括起来时,它意味着用空字符串替换这些字符中的任何一个。
var cleanString = dirtyString.replace(/[\|&;\$%@"<>\(\)\+,]/g, "");
把它们放在括号[]
:
var cleanString = dirtyString.replace(/[\|&;\$%@"<>\(\)\+,]/g, "");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.