比较正则表达式javascript中字符串的长度
我对正则表达式的使用并没有太多的了解,但在过去的几个小时里,我一直在试图解决这个问题,但却无法解决它比较正则表达式javascript中字符串的长度,javascript,regex,Javascript,Regex,我对正则表达式的使用并没有太多的了解,但在过去的几个小时里,我一直在试图解决这个问题,但却无法解决它 regex /^[]{13,17}$/i 我有一个文本框,文本框的值应该大于或等于13,小于或等于17 前 var值-“12345678901344”。(文本框值和长度为14) if(value.match(正则表达式)){ 警报(“正确值”); }否则{ 警报(“错误”); } 现在,长度是14,这意味着条件应该是真的。但是match函数总是返回null。我也尝试过测试函数,但它没有给出
regex /^[]{13,17}$/i
我有一个文本框,文本框的值应该大于或等于13,小于或等于17
前
var值-“12345678901344”。(文本框值和长度为14)
if(value.match(正则表达式)){
警报(“正确值”);
}否则{
警报(“错误”);
}
现在,长度是14,这意味着条件应该是真的。但是match函数总是返回
null
。我也尝试过测试函数,但它没有给出期望的结果。您应该指定序列中必须包含的字符类型:
任何字符-
/^.{13,17}$/i
数字-
/^[0-9]{13,17}$/i
信件-
/^[A-Z]{13,17}$/i
字母、数字、下划线和破折号-
/^[A-Z0-9_-]{13,17}$/i
使用
^.{13,17}$
<代码>[]没有任何意义。您好。这个正则表达式来自数据库,它是动态创建的。在下标中,有时值不能为空。然后必须用
动态替换[]
;选中alert(“123456789013.match”(/^[]{13,17}$/i)+“+”123456789013.match(/^.{13,17}$/i))
,您将看到差异。此在线正则表达式生成器可能会有所帮助。它显示错误并提供表达式提示:如果您实际上是指任何字符,则必须将[]
替换为[^]
或[\s\s]
。你能用[\s\s]
/[^]
替换每个[]
吗?Hi-Puneet-我同意其他注释贡献-如果给出了正则表达式,你需要动态更改它(抱歉,但当我开始回答时没有注释)。好的。请您更新您的问题,指定如何动态更改它。我不确定您的情况,但您可以将regexp转换为字符串(toString()
),去掉前导“/”和尾随“/i”,然后用点替换正方形并最终将字符串转换回regexp(newregexp(str,“i”)
)它也不起作用-任何字符-/^.{13,17}$/i。只有这个工作^.{13,17}$但不能使用它。我认为您混合了字符串(“abc”
)和regexp(/abc/
)概念。如果使用字符串调用match
,则不需要斜杠,但如果使用regexp,则需要斜杠,因为它们是regexp本身的分隔符。正如我在上面的评论中所写,您可以在regexp和string之间来回切换。