我有以下表达式,
var exp = new RegExp('^[a-zA-Z0-9]' + getMinMax() + '$');
我的getMinMax()
函数动态返回值{2,5}等等!
但它返回一个异常,它表示正则表达式中的语法错误。 我怎么能纠正它?
function getMinMax() {
var minLength = Rule.MinimumLength,maxLength = Rule.MaximumLengh;
var limitExpression = (minLength != 'undefined' && minLength != null ) ? minLength.toString() : '';
limitExpression = (maxLength != 'undefined' && maxLength != null ) ? (limitExpression != '' && limitExpression != null) ? ('{' + limitExpression + ',' + maxLength.toString() + '}') : ('{' + maxLength.toString() + '}') : '';
return limitExpression;
}
答案 0 :(得分:2)
您的代码works就好了。
我敢打赌你的Rule
对象中有一个小的拼写错误,所以你应该Rule.MaximumLengh
而不是Rule.MaximumLength
。
另外,作为一个建议,不要使用这么多链接的三元运算符,要读它们真的很难。
答案 1 :(得分:0)
function getMinMax() {
var minLength = Rule.MinimumLength,
maxLength = Rule.MaximumLength,
limitExpression = "";
if (minLength != 'undefined' && minLength != null ) {
limitExpression += minLength.toString();
}
if (maxLength != 'undefined' && maxLength != null ) {
if (limitExpression.length>0) limitExpression+=",";
limitExpression += maxLength.toString();
}
return limitExpression.length>0?"{"+limitExpression+"}":"";
}