有效的正则表达式特定名称模式
我正在处理一个正则表达式来验证一个特定的名称模式,但到目前为止我没有结果,我正在使用javascript,我的想法是匹配任何名称与此模式:
screenshot1.png
它可以是screenshot0.png,screenshot3.png,screenshot99.png,但总是使用我正在使用的相同模式
^(screenshot[0-9].png*)$
但如果我写screenshot9.pn(与g),它显示为一个有效的字符串。
回答如下:你很接近,你需要的是在最后删除*
并让正则表达式匹配screenshot
之后的多个数字并逃脱dot
因为dot (.)
是一个特殊的元字符,它将匹配almost any character:
const tests = ["screenshot09.png", "screenshot09.pn", "screenshoot.png", "screenshoot999apng"];
tests.forEach(x => console.log(/^(screenshot[0-9]+\.png)$/.test(x)));