我正在尝试针对正则表达式测试以下内容,但无法使其正常工作。我正在使用 regex101 但任何人都可以就如何更正此问题或格式化正则表达式提出建议吗?
我有一个数组 - 将其命名为 arr[],其中包含 5 个元素。
- arr[0] 需要是可变数量的字母,即单字名称。
- arr[1] 需要是一个单词或两个单词的名称(即可变数量的字母或可变数量的字母后跟一个空白字符后跟另一个可变数量的字母)
- arr[2]需要连续10位(如123432908623,也可以0开头)
- arr[3] 必须是具有以下格式的社会安全号码 - 3 位数字后跟空格,2 位数字后跟 4 位数字(例如 123 45 6848)
- arr[4] 需要是带有以下格式的区号的电话号码 - 左括号后跟 3 位数字后跟右括号后跟空格后跟左括号后跟 3 位数字后跟右括号后跟空格后跟左括号后跟 4 位数字后跟右括号(例如 (123) 456 1234)
这是我开始时的一些代码:
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);
}
最佳答案
到目前为止,您的代码中似乎有大量拼写错误。此外,这看起来像是一个习题集问题,所以我将把它留给你作为进一步的练习来理解更正的内容。不过你走在正确的轨道上:
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]));
}
关于javascript - 正则表达式匹配变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29901333/