3

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

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

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

4

4 回答 4

11

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

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

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

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

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

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

if (specials.test(address)) { /* bad address */ }
于 2013-02-07T07:38:10.397 回答
3

/[$&+,:;=?[]@#|{}'<>.^*()%!-/]/

低于一个不应允许输入这些字符,它将返回空格

.replace(/[$&+,:;=?[\]@#|{}'<>.^*()%!-/]/,"");
于 2020-12-02T06:42:18.560 回答
0

使用以下功能

function checkSpcialChar(event){
    if(!((event.keyCode >= 65) && (event.keyCode <= 90) || (event.keyCode >= 97) && (event.keyCode <= 122) || (event.keyCode >= 48) && (event.keyCode <= 57))){
        event.returnValue = false;
        return;
    }
    event.returnValue = true;
}
于 2014-12-15T17:44:19.053 回答
0

使用它这将解决问题

String patttern = r"[!-/:-@[-`{-~]";

RegExp regExp = RegExp(patttern);

于 2021-11-10T08:48:59.687 回答