我正在尝试验证两个字符和数字是否正确输入。
var studentValid = /^[MTWTF][AL][1-9]$/i;
if (studentValid.test(studentTemp.value))
{
alert("true");
}
else
{
alert("false");
}
然而我输入的所有内容都是假的?
答案 0 :(得分:1)
问题在于你的正则表达式(/^[MTWTF][AL][1-9]$/i
)。这告诉你的是你首先想要一个字符M,T,W,T或F,然后是A或L,最后是一个数字(在此之前或之后没有任何内容)。
所以例如
ML4,WA5,FL9
会给你真实的 而
AM9,ML0,MMA5,MA99
会给你假的。
这是你想要匹配的模式吗?您的代码没有其他任何问题,有效值会给您带来真的,例如:
var studentValid = /^[MTWTF][AL][1-9]$/i;
var value = 'MA9';
if (studentValid.test(value))
{
alert("true");
}
else
{
alert("false");
}
使用regexp时,使用工具帮助您构建它非常有用,请查看https://regex101.com/r/A5FOIh/3,您可以尝试使用其他studentTemp.value
来查看它们是否匹配。