javascript中用于预订参考的正则表达式匹配
我有一个预订参考字段,我想用一个字符串匹配正则表达式,该字符串是8个字符,以3个字母开头,4个数字中间有一个连字符,我知道如何包括连字符和字母和数字,但从未将其限制为每个部分的特定数量 我是新来的正则表达式,觉得它确实很有趣,但我正在努力学习这一个的语法。例如,javascript中用于预订参考的正则表达式匹配,javascript,regex,Javascript,Regex,我有一个预订参考字段,我想用一个字符串匹配正则表达式,该字符串是8个字符,以3个字母开头,4个数字中间有一个连字符,我知道如何包括连字符和字母和数字,但从未将其限制为每个部分的特定数量 我是新来的正则表达式,觉得它确实很有趣,但我正在努力学习这一个的语法。例如,abc-1234有效 我试过这个: if (id == "email"){ //Allow valid email pattern = /^.+?\@.*?$/ ;
abc-1234
有效
我试过这个:
if (id == "email"){ //Allow valid email
pattern = /^.+?\@.*?$/ ; // test the value against an appropriate regular expression
failmessage ="Only valid email addresses are permitted here";
}
//test booking reference
if (id == "bookref"){ // Allow valid booking reference
pattern = /^[a-zA-Z]{3}-{1}[0-9]{4}$/ ; // test the value against an appropriate regular expression
failmessage="Only valid booking references are permitted here"; // Output error message with invalid input
}
我知道这是错误的,因为我已经测试过了,但我不能想出任何东西我的电子邮件字段是好的,我只是从来没有必须具体的金额,有人可以帮助吗?你的模式看起来是正确的。我做了一点修改。试试这个:
/[a-zA-Z]{3}-[0-9]{4}/g
除了不需要
{1}
(默认情况下假定一个文字字符只代表一个字符)之外,我觉得您的正则表达式很好。它应该匹配一个字符串,该字符串以3个字母开头,以一个连字符继续,以4个数字结尾。注意:因为您使用的是^
和$
,所以整个字符串必须与此匹配;如果您想匹配字符串中的任何位置,请忽略起始和结束锚。添加更新:我刚刚根据示例字符串abc-1234
测试了您的正则表达式,它匹配正确。非常感谢,我在regex101上尝试了它,但没有得到与我的字符串匹配的结果,您在哪里测试的?如果你不介意我问的话。我只是在浏览器的开发控制台中运行它:/^[a-zA-Z]{3}-{1}[0-9]{4}$/.test('abc-1234')
返回true。(它也返回true,没有冗余的{1}
位。)我刚刚在Regex101上测试过,也得到了一个匹配?