书写模式与字符串Javascript / Jquery不匹配

时间:2014-11-25 17:25:46

标签: javascript jquery regex

我正在验证以下数据模式“I-MH-ABCD-ABC-1222”的文本字段;

以下是我写的RegEx,它无效。

var router_added_sap = "I-MH-ABCD-ABC-1222";
var pattern = /^[a-zA-Z]{1}\-[a-zA-Z]{2}\-[a-zA-Z]{4}\-[a-zA-Z]{3}\-\d/;

if(!router_added_sap.match(pattern))
{
   alert("Please Enter Right SAP-IDasa");
   return false;
}

虽然用户编写正确的模式脚本正在发出警报消息。

1 个答案:

答案 0 :(得分:0)

绝对没有必要逃脱破折号。您还需要将每个组合在一起。如果这些在单个字段中单独使用,那么我建议确保检查字符串的开头(^)和字符串的结尾($)并在结尾处应用ignore case标志(i)。最后的(+)是一个量词,它将检查一个或多个数字并抓住所有数字。所以我会这样重写它。

var router_added_sap = "K-MH-ABCD-ABC-1222";
var pattern = /^([A-Z]{1})-([A-Z]{2})-([A-Z]{4})-([A-Z]{3})-\d+$/i;

if(!router_added_sap.match(pattern))
{
   alert("Please Enter Right SAP-IDasa");
   return false;

}

http://www.regexr.com/非常适合帮助构建正则表达式。我还在桌面上打印了一张很好的备忘单,我在这里找到了http://cheatography.com/1/cs/5/