我在表单中有一个地址字段,我想限制* | \ " : < > [ ] { } \ ( ) '' ; @ & $
我尝试过的
var nospecial=/^[^* | \ " : < > [ ] { } ` \ ( ) '' ; @ & $]+$/;
if(address.match(nospecial)){
alert('Special characters like * | \ " : < > [ ] { } ` \ ( ) \'\' ; @ & $ are not allowed');
return false;
Run Code Online (Sandbox Code Playgroud)
但它不起作用。请告诉我我错过了什么?
您需要在角色类中转义右括号(以及反斜杠)。您也不需要所有空格:
var nospecial=/^[^*|\":<>[\]{}`\\()';@&$]+$/;
Run Code Online (Sandbox Code Playgroud)
我摆脱了你所有的空间;如果您还想限制空格字符,请再添加一个空格。
编辑 @fab在评论中指出,扭转正则表达式的含义会更有效:
var specials=/[*|\":<>[\]{}`\\()';@&$]/;
Run Code Online (Sandbox Code Playgroud)
并测试是否存在特殊字符(而不是缺少一个特殊字符):
if (specials.test(address)) { /* bad address */ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24945 次 |
| 最近记录: |