我有以下表达,

var exp = new RegExp('^[a-zA-Z0-9]' + getMinMax() + '$');


我的getMinMax()函数动态返回值{ex,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;
}

最佳答案

您的代码works很好。

我敢打赌,您的Rule对象中有一个小的错字,因此,您可能应该有Rule.MaximumLengh而不是Rule.MaximumLength

另外,建议不要使用太多的链式三元运算符,这真的很难阅读。

07-28 07:01