JavaScript 模式匹配

发布于 2024-11-06 18:59:04 字数 349 浏览 3 评论 0原文

对于像 asklas@(((#) 这样的输入,matchArray 变为 null 我该如何纠正此行为?我只想允许字符和数字..

function validateName(name) {
    debug(name);
    var namePat = /^(\[A-Za-z0-9]*)$/ ;
    var matchArray = name.match(namePat);
    if (!matchArray){
        debug ("Invalid name,", name );
        return false;
    } 
    return true;
}

matchArray becomes null for input like asklas@(((# How do I correct this behavior? I only want to allow characters and numbers..

function validateName(name) {
    debug(name);
    var namePat = /^(\[A-Za-z0-9]*)$/ ;
    var matchArray = name.match(namePat);
    if (!matchArray){
        debug ("Invalid name,", name );
        return false;
    } 
    return true;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

简美 2024-11-13 18:59:04

您的正则表达式中有一个错误的反斜杠。应该是

var namePat = /^[A-Za-z0-9]*$/;

(并且您也不需要捕获括号)。

There is one erroneous backslash in your regex. It should be

var namePat = /^[A-Za-z0-9]*$/;

(and you don't need the capturing parentheses, either).

緦唸λ蓇 2024-11-13 18:59:04

不确定在这种情况下您想要什么...如果您想要布尔输出,请使用 .test:

namePat.test(name)

...但是 null 适合您的测试 (!matchArray) 就可以了。

看起来你的正则表达式确实有一个拼写错误 - 你需要去掉左括号之前的反斜杠......

Not sure what you want in this case... if you want a boolean output, use .test:

namePat.test(name)

... but null will work for your test (!matchArray) just fine.

It does seem like you have a typo in your regular expression - you'll want to get rid of the backslash before the opening bracket...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文