正则表达式限制特殊字符

2024-02-29

我的表单中有一个地址字段,我想限制
* | \ " : < > [ ] { } \ ( ) '' ; @ & $
我尝试过

var nospecial=/^[^* | \ " : < > [ ] { } ` \ ( ) '' ; @ & $]+$/;
            if(address.match(nospecial)){
                alert('Special characters like * | \ " : < > [ ] { } ` \ ( ) \'\' ; @ & $ are not allowed');
                return false;

但它不起作用。请告诉我我错过了什么?


您需要转义字符类中的右括号(以及反斜杠)。您也不需要所有空格:

var nospecial=/^[^*|\":<>[\]{}`\\()';@&$]+$/;

我摆脱了你所有的空间;如果您还想限制空格字符,请重新添加一个空格。

EDIT正如 @fab 在评论中指出的那样,反转正则表达式的含义会更有效:

var specials=/[*|\":<>[\]{}`\\()';@&$]/;

并测试是否存在特殊字符(而不是不存在):

if (specials.test(address)) { /* bad address */ }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

正则表达式限制特殊字符 的相关文章

随机推荐