我编写了一个正则表达式,以便从文本条目中排除.jpg,.jpeg,.png,.bmp。但如果我把a.png放进去就不行了。
这是代码:
function isValidateName(e) {
var filter = "^((?!.jpg)(?!.jpeg)(?!.png)(?!.bmp)[a-zA-Z0-9\\u00C0-\\u017F\\-\\.\\s\\'])";
return String(e).search (filter) != -1;
}
alert(isValidateName("image.png")); // It's returning true
alert(isValidateName(".png")); // It's returning false
基本上我想限制用户在文本末尾添加.jpg,.jpeg,.png,.bmp。
允许:
png,a..png,png。,png .a等
限制: a.png,b.jpg
请有人帮助我!!
答案 0 :(得分:2)
Dot作为正则表达式中的特殊字符,与任何字符匹配。所以你必须逃避它以摆脱它的特殊含义:\.
。
答案 1 :(得分:1)
如果您需要在字符串末尾检查这些扩展名,请尝试以下模式:
function isValidName(e) {
return !(/\.(png|bmp|jpe?g)$/i).test(e);
};
测试
console.log(isValidName("myfile.png")) // false
console.log(isValidName("myfile.whatever.jPeG")) // false
console.log(isValidName("myfile.gif")) // true: this is valid
注意:正则表达式末尾的/i
修饰符也会检查camelcase / mixedcase字符串
答案 2 :(得分:0)
这个怎么样?
/^[\u00C0-\u017Fa-z\d\s'.-]+\.(?!(jpg|jpeg|png|bmp)$)[a-z]+$/i