我正在尝试测试下面的regex,但是无法让它工作。我正在使用regex101,但有人能建议如何纠正这个问题或格式化正则表达式吗?
我有一个数组--称为arr[],包含5个元素。
下面是我开始时的一些代码:
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);
}发布于 2015-04-27 16:46:37
到目前为止,您的代码中似乎有大量的输入。此外,这看起来像一个问题集,所以我将把它留给你们作为一个进一步的练习,以了解什么是更正。不过,你走在正确的轨道上:
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]));
}发布于 2015-04-27 16:51:28
这应该可以做到:
var arr = ["Louis", "Louis Python", "1234567890", "123 45 6848", "(123) 456 1234"];
var str1 = arr[0];
var pat1 = /^[a-z]+$/i;
var first = pat1.test(str1);
console.log(first);
var str2 = arr[1];
var pat2 =/^[a-z]+(?:\s[a-z]+)?$/i;
var second = pat2.test(str2);
console.log(second);
var str3 = arr[2];
var pat3 = /^[\d]{10}$/;
var third = pat3.test(str3);
console.log(third);
var str4 = arr[3];
var pat4 = /^[\d]{3}\s[\d]{2}\s[\d]{4}$/;
var fourth = pat4.test(str4);
console.log(fourth);
var str5 = arr[4];
var pat5 = /^\([\d]{3}\)\s[\d]{3}\s[\d]{4}$/;
var fifth = pat5.test(str5);
console.log(fifth);输出:
true
true
true
true
true演示
http://codepen.io/anon/pen/gpboLr
发布于 2015-04-27 16:52:44
我认为在全局格式中使用regex更有趣,做了一件容易维护的事情.
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}$/https://stackoverflow.com/questions/29901333
复制相似问题