我正在尝试测试以下正则表达式,但我无法让它工作。我正在使用regex101,但任何人都可以建议如何纠正这个或格式化正则表达式?
我有一个数组 - 用5个元素称它为arr []。
以下是我开始使用的代码:
for(var i = 0; i<arr.length; i++){
var str1 = arr[i][0];
var pat1 = /^\s'w+?'/;
var first = pat1.test(str1);
console.log(first);
var str2 = arr[i][1];
var pat2 = /\s'\w+(?:\s\w+)?'/;
var second = pat2.test(str2);
console.log(second);
var str3 = arr[i][2];
var pat3 = /?:\d{10}$/;
var third = pat3.test(str3);
console.log(third);
var str4 = arr[i][3];
var pat4 = /?:\d{3}\s){2}\d{4}'\s\]$/;
var fourth = pat4.test(str4);
console.log(fourth);
var str5 = arr[i][4];
var pat5 = /\s'(?:\d{3}\s){3}\d{4})'\s\/;
var fifth = pat5.test(str5);
console.log(fifth);
}
答案 0 :(得分:2)
到目前为止,您的代码中似乎存在大量拼写错误。此外,这看起来像一个问题集问题,所以我将把它作为进一步的练习,以了解更正是什么。你在正确的轨道上:
var pat1 = /^[a-z]+$/i;
var pat2 = /^[a-z]+(?: [a-z]+)?$/i;
var pat3 = /^\d{10}$/;
var pat4 = /^\d{3} \d{2} \d{4}$/;
var pat5 = /^\(\d{3}\) \d{3} \d{4}$/;
for (var i = 0; i < arr.length; i++) {
console.log(pat1.test(arr[i][0]));
console.log(pat2.test(arr[i][1]));
console.log(pat3.test(arr[i][2]));
console.log(pat4.test(arr[i][3]));
console.log(pat5.test(arr[i][4]));
}
答案 1 :(得分:1)
答案 2 :(得分:1)
我相信在全局格式中使用正则表达式更有趣,可以轻松维护...
http://jsfiddle.net/579j2po1/1
var pat1 = /^[a-z]+$/i;
var pat2 = /^[a-z]+( +[a-z]+)?$/i
var pat3 = /^[0-9]{10}$/;
var pat4 = /^[0-9]{3} [0-9]{2} [0-9]{4}$/
var pat5 = /^\([0-9]{3}\) [0-9]{3} [0-9]{4}$/