正则表达式在我看来简直是邪恶的,无论我阅读任何文档多少次,我似乎都无法掌握即使是最简单的表达式!
我正在尝试编写一个非常简单的表达式来查询 javascript 中的变量,但我无法让它正常工作。
我正在尝试验证以下内容:-
字符串长度必须为 9 个字符,以 SO-(不区分大小写,例如 So-、so-、sO- 和 SO-)开头,后跟 6 个数字。
所以以下应该都匹配
SO-123456、SO-123456、SO-456789、SO-789123
但以下应该失败
SO-12d456、SO-1234567
等等等等
到目前为止,我只设法做到了这一点
var _reg = /(SO-)\d{6}/i;
var _tests = new Array();
_tests[0] = "So-123456";
_tests[1] = "SO-123456";
_tests[2] = "sO-456789";
_tests[3] = "so-789123";
_tests[4] = "QR-123456";
_tests[5] = "SO-1234567";
_tests[6] = "SO-45k789";
for(var i = 0; i < _tests.length; i++){
var _matches = _tests[i].match(_reg);
if(_matches && _matches.length > 0)
$('#matches').append(i+'. '+_matches[0] + '<br/>');
}
以上示例请参见http://jsfiddle.net/TzHKd/
测试编号 5 匹配,但它应该失败,因为有 7 个数字而不是 6 个。
任何帮助将不胜感激。
干杯