我有一个文本框,想要将模式匹配为
[a-z]{1}[A-Z]{1}[0-9]{1}
var x=/^[a-z]{1}[A-Z]{1}[0-9]{1}$/;
if(!x.test(document.getElementById('name').value))
{
alert("enter the correct format");
return false;
}
它仅适用于值:aA1
如果出现这种情况该怎么办 这些值可以随机输入 像aA1、Aa1、1aA?
最佳答案
要以任意顺序匹配一组字符串,您可以使用前瞻。像这样的事情:
/^(?=.*a)(?=.*b)(?=.*c)[abc]{3}$/.test('cab')
语法 (?=whatever) 是正向前瞻,这意味着它检查匹配项而不提前匹配器的位置。因此,每个组都会在字符串中的任何位置查找您的字符。最后一部分 [abc]{3}
确保字符串中不存在其他字符,并且恰好有三个字符。如果可以使用倍数,请使用 [abc]+ 代替。
有关更详细的引用,请参阅 http://www.regular-expressions.info/lookaround.html .
关于javascript - 如何将 'aA1' 或 'Aa1' 或 '1aA' 与正则表达式匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12103415/