我想创建一个正则表达式,它将接受az,AZ,0-9,并且最后不应接受.jpg,.JPG,.bmp,.BMP,.jpeg,.JPEG,.png,.PNG的字符串。但是这些是允许在字符串的中间。除了 ”。”它也不应该也接受任何特殊字符。
Accept:
-----------
abc123
Abc123
abc png 123
abc
Reject
----------
abc@!#$%^
abc.png
xyz.jpg
abc.PNG
我创建了正则表达式模式,如 - [A-Za-z \ u00C00- \ u017F \ - ]但不确定如何继续前进。
基本上这就是我需要的:
1 - 接受大写字母A-Z,小写字母a-z,数字0-9,连字符,单引号,空格和点
2 - 允许使用以下带重音的特殊字符: - á,â,ã,ê,õ(这些只是几个例子)
3 - 不允许使用以下字符: - 反斜杠,正斜杠,冒号,星号,问号,双引号,小于,多于,管道和&符号
4 - 不允许使用以下格式: - URL链接,图像和电子邮件地址
对此有任何帮助!!
答案 0 :(得分:1)
答案 1 :(得分:0)
您可以像这样使用否定?!.
:
^[a-zA-Z0-9](?!.*.jpg)(?!.*.JPG)(?!.*.bmp)(?!.*.BMP)(?!.*.jpeg)(?!.*.JPEG)(?!.*.png)(?!.*.PNG)
修改强>
也接受没有点的jpg,png等。现在通过用方括号括起.
来纠正。
^[a-zA-Z0-9](?!.*[.]jpg)(?!.*[.]JPG)(?!.*[.]bmp)(?!.*[.]BMP)(?!.*[.]jpeg)(?!.*[.]JPEG)(?!.*[.]png)(?!.*[.]PNG)
答案 2 :(得分:0)
这应该有效。如果你想要否定其他字符,只需将它们添加到第一个克拉后的第一个方括号中。
/[^|@!#$%^\/":*&<>?]{0,4}[^.][a-zA-Z]{3}?([a-zA-Z])$/
这假设您想要否定所有结束扩展,无论它们是否是真实类型。
这是我将使用的模式。如果我想在最后四个字符中包含一个句点,我会将最后3-4个字符切掉,看看它们是否与现有的扩展名匹配。如果最后3-4个字符不是扩展名,则允许该字符串。
在这种情况下,你可以使用:
/[^|@!#$%^\/":*&<>?]*/
然后对最后3-4个字符进行切片或分割一段时间以检查扩展名。您也可以使用子字符串来获取最后几个字符。