我正在验证以下数据模式“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;
}
虽然用户编写正确的模式脚本正在发出警报消息。
答案 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/