我有一个包含大部分0或1的字符串。我需要检查字符串中的每个元素是否为8位格式,由最后一个元素以外的空格分隔。
例如:
这些字符串应返回true
"11001100 01101111 11001011 00001011"
//正确"00001100 11101111 11001000 00000001 11001011"
//正确这些字符串应返回false
"11001100 1100101 01101111"
//否,因为第二个元素只有7位
"11001100 01101111 11001011 00200011"
//否,因为最后一个元素中有2个
我尝试过此代码,但所有测试均返回true。我是regex的新手,所以我们将不胜感激:)
console.log(/([01]{8})+\s?/.test(str2));
答案 0 :(得分:2)
您已关闭,请使用:
/^[01]{8}(?: [01]{8})*$/
说明:
/ : regex delimiter
^ : beginning of string
[01]{8} : 0 or 1, must appear 8 times
(?: : start non capture group
: 1 horizontal space
[01]{8} : 0 or 1, must appear 8 times
)* : end group, must appear 0 or more times
$ : end of line
/ : regex delimiter
var test = [
"11001100 01101111 11001011 00001011",
"00001100 11101111 11001000 00000001 11001011",
"11001100 1100101 01101111",
"11001100 01101111 11001011 00200011"
];
console.log(test.map(function (a) {
return a+' --> '+/^[01]{8}(?: [01]{8})*$/.test(a);
}));