0

私は次の表現をしています、

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

2 に答える 2

2

あなたのコードは問題なく動作します。

私の賭けは、あなたのオブジェクトに小さなタイプミスがあるということです.RuleRule.MaximumLenghRule.MaximumLength

また、三項演算子の連鎖はあまり使わないでください。非常に読みづらかったです

于 2012-09-13T14:06:04.567 に答える
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+"}":"";
}
于 2012-09-13T14:29:46.173 に答える