javascript - 无法形成正则表达式

标签 javascript regex

我使用下面的正则表达式来检查字母、数字、字符、+ 和 -

if (/[^a-z0-9\-\+]+$/i.test(value)) 
        {
            alert ("Only alphabets and numbers are allowed.");
            return;
        }

如果使用任何特殊字符,这将显示消息。但我面临的一个问题是,如果该值是特殊字符和字母或数字的组合,则此条件不满足。例如,如果值为 %$2,则条件不会返回 true 并显示消息。我希望如果存在任何特殊字符,则条件应该满足并显示消息。

最佳答案

你不应该使用 $ anchor 。此外,在您的情况下,最后的 + 不是必需的。以下检查字符串是否包含任何不允许的字符:

if (/[^a-z0-9\-\+]/i.test(value)) 
{
    alert ("Only alphabets and numbers are allowed.");
    return;
}

您也可以反转条件。 (使用 *+ 取决于您是否允许空字符串。)以下检查整个字符串是否只包含允许的字符:

if (!/^[a-z0-9\-\+]*$/i.test(value)) 
{
    alert ("Only alphabets and numbers are allowed.");
    return;
}

关于javascript - 无法形成正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13472187/

相关文章:

c# - 字符串占位符和正则表达式

Java正则表达式匹配结束不起作用

r - 在精确模式后提取 n 个字符/数字

javascript - 我正在尝试使用模板文字在 html 中显示来自 javascript 的文本,但元素未定义,我该怎么办?

javascript - 为什么我们还要在html中使用form元素?

javascript - 如何向 Google map 添加用户位置标记?

Python 3 正则表达式问题

regex - 使用安全#! $ 正则表达式中的变量?

javascript - javascript 中的 setTimeout 问题

javascript - 按类对元素进行 react 渲染