如果变量超过五个零,则Javascript匹配

时间:2013-04-23 23:13:22

标签: javascript

我正在尝试检查src是否有超过五个连续的零。例如,http://domain.com/images/00000007.jpg会匹配,但http://domain.com/images/0000_1.jpg则不匹配。这是我到目前为止所做的,但似乎没有用。有什么建议吗?

if (src.match(/0{5,}$/)) {
  match found
}
else {
  no match found
}

3 个答案:

答案 0 :(得分:3)

你应该从字符串的开始^匹配零,即

if (/^0{5,}/.test(src)) { ... }

如果您需要在字符串的任何位置匹配5个连续的零,则省略任何^$

更新:在您的情况下,您可以使用if (/\/0{5,}/.test(src)) { ... }之类的内容。

答案 1 :(得分:2)

作为替代方案,您也可以使用indexOf(),类似于:

if(src.indexOf('00000') > -1){
    alert('matchFound');
} else {
    alert('no match found');
}

答案 2 :(得分:0)

尝试使用此尺寸:

/0{5,}[^\/]*$/

它检查五个或更多的零,然后除了正斜杠到字符串的末尾之外的任何东西。如果要进行其他验证,可以使用正斜杠启动模式以确保文件以五个零开头,或者您可以在最后添加可接受的文件类型:

/\/0{5,}[^\/]*\.(jpe?g|gif|png)$/i

细分(对于您或未来读者不知道的任何部分):

/             Starts the regular expression
  \/          A literal forward slash (escaped because '/' is a delimiter)
  0{5,}       Five or more zeros
  [^\/]*      Anything except a literal forward slash, zero or more times.
  \.          A literal period (unescaped periods match anything except newlines)
  (           start a group
    jpe?g     jpeg or jpg (the ? makes the 'e' match zero or 1 times)
    |         OR
    gif       gif
    |         OR
    png       png
  )           End group
  $           Assert the end of the string.
/             End the regular expression
i             Case insensitive.