Javascript验证正则表达式不起作用

Posted

技术标签:

【中文标题】Javascript验证正则表达式不起作用【英文标题】:Javascirpt validation regex does not work 【发布时间】:2021-06-18 06:12:36 【问题描述】:

我只是不知道为什么这种模式不起作用。似乎一切都是正确的,我没有我所缺少的。每次它都属于其他部分,我不知道为什么。

var adresaFormat = /^[A-ZČĆŽŠĐ][a-zčćžšđ]+([ ][A-ZČĆŽŠĐa-zčćžšđ][a-zčćžšđ]+)+[0-9]1,3$/;
document.getElementById("adresa").addEventListener("blur",function()
    if(adresaFormat.test(document.getElementById("adresa").value))
        document.getElementById("adresa").style.backgroundColor="#ffffff";
        document.getElementById("adresa").style.border="1px solid #c2c2c2";
    
    else 
        document.getElementById("adresa").style.backgroundColor="#ff0000";
        document.getElementById("adresa").style.border="1px solid #ff0000";
    
);

【问题讨论】:

能否提供您用于测试的示例字符串? 当然。 “未知街道 2” 请发MCVE 好吧,在发布的代码中不可见的所有内容都是字段的类型。它是文本。 regexper.com 会告诉你原因 【参考方案1】:

您缺少第二个单词和数字之间的空格。

//Before
var adresaFormat = /^[A-ZČĆŽŠĐ][a-zčćžšđ]+([ ][A-ZČĆŽŠĐa-zčćžšđ][a-zčćžšđ]+)+[0-9]1,3$/;

console.log(adresaFormat.test("Unknown street 2"));
//After
adresaFormat = /^[A-ZČĆŽŠĐ][a-zčćžšđ]+([ ][A-ZČĆŽŠĐa-zčćžšđ][a-zčćžšđ]+)[ ]+[0-9]1,3$/;

console.log(adresaFormat.test("Unknown street 2"));

我希望这就是你要找的。​​p>

【讨论】:

没错!我不知道我怎么没有立即看到。非常感谢!

以上是关于Javascript验证正则表达式不起作用的主要内容,如果未能解决你的问题,请参考以下文章

调试后正则表达式不起作用

为啥这个 javascript 正则表达式不起作用?

工作正则表达式在 laravel 验证中不起作用

Javascript 正则表达式逗号检测不起作用

laravel 正则表达式验证不起作用

Javascript 正则表达式(负)后视在 Firefox 中不起作用