Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较正则表达式javascript中字符串的长度_Javascript_Regex - Fatal编程技术网

比较正则表达式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之间来回切换。