正则表达式从字符串

时间:2017-07-20 08:05:06

标签: javascript regex

我有一个JavaScript函数,用于测试字符串并验证它是否包含字母,数字和一些特殊字符,包括字符%20(空格)%27(撇号)。

我当前的RegEx失败,因为它允许其他字符,例如%3

我想在字符串中%3的任何匹配上失败。更好的是,我想仅在%20和/或%27作为一个群体进行匹配。

我的RegEx

^[0-9a-zA-Z\%20\-_:.,!\/\\%27]+$

我想要匹配

Employee%27s%20Saved

但是失败了

%3Emplo%3yee%27s%20Saved%3

2 个答案:

答案 0 :(得分:0)

更新@MohaMad评论:

^(?:[0-9a-zA-Z-_:.,!/\\]|%20|%27)+$

通过使用非捕获组,它将仅与完全匹配产生结果。

答案 1 :(得分:0)

尝试使用非捕获组' (?!...)

你应该尝试这样的事情: ^(\w*(?!\%3)\w*(?:\%27|\%20)\w*)+$

检查https://regex101.com/r/r89dlA/1