??什么叫把正确的也匹配掉了? 你想做什么? var s = "\\0x12,\\0x123,\\0x1234,\\0x1235"; var p = /^\\0[xX](?:[A-Fa-f0-9]){2,5}(?:,\\0[xX](?:[a-fA-F0-9]){2,5})*$/; alert(p.test(s));
我入力的十六进制的数字串是这样的: var s="0x12,0x1,0xa1,0x35".没有\\. 匹配var s = "\\0x12,\\0x123,\\0x1234,\\0x1235";是可以的. 把var p = /^\\0[xX](?:[A-Fa-f0-9]){2,5}(?:,\\0[xX](?:[a-fA-F0-9]){2,5})*$/;中的\\去掉就好了. 刚才可能我没有说清楚. 谢谢,接分.
/\\((0x)|(0X))(?:[A-Fa-z0-9]){2,5}(?:,\\((0x)|(0X))(?:[A-Fa-z0-9]){2,5})*$/
还是不行.现在这种情况下正确的也报错,如:0xaf.0x01也被认为是错误的了.
怎么又改成点了?抱歉刚写错了。。/^\\0x(?:[a-f0-9]){2,5}(?:,\\0x(?:[a-f0-9]){2,5})*$/i;JS里的话这样就可以了
你不想用i也可以/^\\0[xX](?:[A-Fa-f0-9]){2,5}(?:,\\0[xX](?:[a-fA-F0-9]){2,5})*$/;
/^¥¥0[xX](?:[A-Fa-f0-9]){2,5}(?:,¥¥0[xX](?:[a-fA-F0-9]){2,5})*$/;在这种情况下还是和原来的情况一样,把正确的也匹配掉了.
你想做什么?
var s = "\\0x12,\\0x123,\\0x1234,\\0x1235";
var p = /^\\0[xX](?:[A-Fa-f0-9]){2,5}(?:,\\0[xX](?:[a-fA-F0-9]){2,5})*$/;
alert(p.test(s));
var s="0x12,0x1,0xa1,0x35".没有\\.
匹配var s = "\\0x12,\\0x123,\\0x1234,\\0x1235";是可以的.
把var p = /^\\0[xX](?:[A-Fa-f0-9]){2,5}(?:,\\0[xX](?:[a-fA-F0-9]){2,5})*$/;中的\\去掉就好了.
刚才可能我没有说清楚.
谢谢,接分.