如何在javascript正则表达式中连接字符串文字?
我有下面的表达如何在javascript正则表达式中连接字符串文字?,javascript,regex,Javascript,Regex,我有下面的表达 var exp = new RegExp('^[a-zA-Z0-9]' + getMinMax() + '$'); MygetMinMax()函数动态返回值ex{2,5},等等 但它返回一个异常,它表示正则表达式中的语法错误。 我怎样才能纠正它 function getMinMax() { var minLength = Rule.MinimumLength,maxLength = Rule.MaximumLengh; var limitExpression = (
var exp = new RegExp('^[a-zA-Z0-9]' + getMinMax() + '$');
MygetMinMax()
函数动态返回值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;
}
你的代码很好
我敢打赌,您的规则
对象中有一个小的输入错误,因此,您应该使用规则.MaximumLengh
,而不是规则.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+"}":"";
}
它工作得很好,你确定
getMinMax()
返回字符串“{2,5}”
?我从数据库中动态获取minlength和maxlength,并通过getMaxMin()分配它,但它引发了一个异常?显示你的getMinMax函数…你所说的“数据库”是什么意思?听起来像异步任务?设置一个断点。检查getMinMax()
的返回值。我保证它不是{x,y}
.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()++'}'):'';返回limitExpression;}以获取“works”的某些定义我想,它只返回一个最小值而不是{x,}
,它只返回一个最大值而不是{0,x}
。我同意它不应该导致正则表达式解析错误。