正则表达式在javascript - 正则表达式中的变量
问题描述:
基本上我想返回一个错误,如果一个字段的值是非数字或小于定义的最小长度(从数组)。我竭力要得到这个JavaScript来的工作:正则表达式在javascript - 正则表达式中的变量
var fields = new Array("field_1","field_2","field_3");
var length = new Array(12,4,3);
for (i=0; i < fields.length; i++) {
var regex = "/^[\d]{" + min_length[i] + "}$/"; //
var field = document.getElementById(numeric_fields[i]);
if (!regex.test(field.value)) {
alert("error");
}
else {
--do other stuff--
}
}
答
到RegExp类(http://www.regular-expressions.info/javascript.html)请参考:
var regex = new RegExp("^\d{1,"+min_length[i] + ",}$");
答
正则表达式就可以方便的东西很多,但对于简单的任务,他们都没有最有效的方法。如何确定所述场不是一个数字,是一定长度的:
var fields = ["field_1", "field_2", "field_3"];
var length = [12, 4, 3];
for (var i = 0, len = fields.length; i < len; i++) {
var field = document.getElementById(numeric_fields[i]);
var value = field.value;
if (isNaN(field.value) || field.value.toString().length < min_length[i]) {
alert("error");
} else {
// do other stuff
}
}
+0
+1在不需要时不使用正则表达式 – 2011-04-23 04:48:31
嗯..变种正则表达式=新正则表达式( “/^[\ d] {” + MIN_LENGTH [I] +“} $ /“);似乎不工作? – toop 2011-04-23 04:19:32
'{n}'意味着n个匹配,所以要验证少于特定的长度应该使用'{n,}',注意逗号。 – ShiningRay 2011-04-23 04:22:56
对不起,应该是'{n,m}''m'表示最大长度为 – ShiningRay 2011-04-23 04:28:47