我使用下面的正则表达式来检查字母、数字、字符、+ 和 -
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/