我正在尝试检查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
}
答案 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.