簡體   English   中英

如何在javascript正則表達式中連接字符串文字?

[英]How to concatenate string literals in javascript regular expression?

我有以下表達式,

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

你的代碼工作得很好。

我敢打賭,你有你的一個小錯字 Rule對象,所以不是Rule.MaximumLengh ,你應該有Rule.MaximumLength

另外,作為一個建議 ,不要使用這么多鏈式三元運算符,它真的很難讀。

你能試一下嗎

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+"}":"";
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM