Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中用于预订参考的正则表达式匹配_Javascript_Regex - Fatal编程技术网

javascript中用于预订参考的正则表达式匹配

javascript中用于预订参考的正则表达式匹配,javascript,regex,Javascript,Regex,我有一个预订参考字段,我想用一个字符串匹配正则表达式,该字符串是8个字符,以3个字母开头,4个数字中间有一个连字符,我知道如何包括连字符和字母和数字,但从未将其限制为每个部分的特定数量 我是新来的正则表达式,觉得它确实很有趣,但我正在努力学习这一个的语法。例如,abc-1234有效 我试过这个: if (id == "email"){ //Allow valid email pattern = /^.+?\@.*?$/ ;

我有一个预订参考字段,我想用一个字符串匹配正则表达式,该字符串是8个字符,以3个字母开头,4个数字中间有一个连字符,我知道如何包括连字符和字母和数字,但从未将其限制为每个部分的特定数量

我是新来的正则表达式,觉得它确实很有趣,但我正在努力学习这一个的语法。例如,
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上测试过,也得到了一个匹配?