我正在尝试匹配具有以下形式的字符串:
abcd:vxyz
即:4个字符后跟冒号,然后是3个(或最多)4个字符。
我想做INSENSITIVE案例。
任何人都可以帮助解决这种模式吗?
答案 0 :(得分:5)
/^[a-z]{4}:[a-z]{3,4}$/i
........
答案 1 :(得分:3)
以下正则表达式应该有效:
"^[a-zA-Z]{4}:[a-zA-Z]{3,4}$"
{4}部分表示它应该恰好匹配前一个符号的四个副本,它可以是'a'和'z'之间的任何字符,以及'A'和'Z',包括在内。
{3,4}部分创建3到4之间的复制范围,而'^'符号表示它应该从给定字符串的开头开始,'$'符号表示它应该结束在给定字符串的末尾。
答案 2 :(得分:2)
您的示例是按字母顺序排列的,但目前还不清楚您所需的正则表达式是否仅限于此。如果您想匹配这些组中的任何字符:
/^.{4}:.{3,4}$/i
答案 3 :(得分:1)
另一种非正则表达式方法是在冒号上split()
。检查第一个元素的长度为4,第二个元素的长度为3或4。
var foo = 'abcd:123a';
var bar = 'fds:0';
var af = foo.split(':');
var isMatch = ((af[0].length==4) && (af[1].length==3 || af[1].length==4));
alert (isMatch);
var ab = bar.split(':');
alert ((ab[0].length==4) && (ab[1].length==3 || ab[1].length==4));