Regex 使用正则表达式测试字符串中的每个元素是否为8位格式
我有一个由0或1组成的字符串。我需要检查字符串中的每个元素是否都是由空格分隔的8位格式,最后一个元素除外 例如: 这些字符串应返回trueRegex 使用正则表达式测试字符串中的每个元素是否为8位格式,regex,Regex,我有一个由0或1组成的字符串。我需要检查字符串中的每个元素是否都是由空格分隔的8位格式,最后一个元素除外 例如: 这些字符串应返回true “1100110001101111111001011000001111”//正确 “0000111001111111100100000000001 11001011”//正确 这些字符串应返回false “11001100 1100101 01101111”//错误,因为第二个元素仅为7bit “1100110001101111111001011002
//正确“1100110001101111111001011000001111”
//正确“0000111001111111100100000000001 11001011”
//错误,因为第二个元素仅为7bit“11001100 1100101 01101111”
//错误,因为最后一个元素中有2“110011000110111111100101100200011”
/^[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测试=[
"11001100 01101111 11001011 00001011",
"00001100 11101111 11001000 00000001 11001011",
"11001100 1100101 01101111",
"11001100 01101111 11001011 00200011"
];
console.log(test.map)(函数(a){
返回一个+'-->'+/^[01]{8}(?[01]{8})*$/.test(a);
}));
您的代码在第一个字符串中返回false,该字符串应为true。@Joven28:My bad,js无法识别\h
,已修复。感谢您的帮助。顺便说一句,我想知道为什么要添加?:这个表达式?@Joven28:这是一个非捕获组,在不需要时比捕获组更有效。
/ : 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