简体   繁体   English

javascript中的正则表达式-正则表达式中的变量

[英]regex in javascript - variable inside regex

Basically i want to return an error if the value of a field is non-numeric or less than a defined minimum length (from array). 基本上,如果字段的值是非数字或小于定义的最小长度(来自数组),我想返回错误。 i'm struggling to get this javascript to work: 我正在努力使此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] + ",}$"); 

Regular expressions can be handy for a lot of things, but for simpler tasks they are not the most efficient way. 正则表达式在很多事情上都很方便,但是对于简单的任务来说,它们并不是最有效的方法。 How about determining if the field is not a number and is of a certain length: 如何确定该字段是否不是数字并且具有一定长度:

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
    }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM