如何使正则表达式适合规则
username.com
x username.comme
o 这是我的,如果包含点,下划线,短划线,则无法匹配
以及如何排除扩展字符串
^[a-zA-Z0-9_.-]*\w{5,}$
答案 0 :(得分:6)
这将是这样的:
^([\w.-](?!\.(com|net|html?|js|jpe?g|png)$)){5,}$
解释
^ # from start
([\w.-] # \w is equal to [a-zA-Z0-9_]
(?!\. # in front can NOT be a dot followed by
(com # com
|net # OR net
|html? # OR htm or html # ? means optional match
|js # OR js
|jpe?g # OR jpg or jpeg
|png # OR png
)$ # block only if it is at the end
) # end of the negative lookahead
){5,} # match at least 5 characters in above conditions
$ # till the end
希望它有所帮助。
答案 1 :(得分:1)
虽然你可以(可能)将它变成一个正则表达式,但它会严重执行 ...你最好使用一个函数,可以使用两个 正则表达式。
使用数组检查可以更好地关闭第二部分,将所有值拆分为数组。
function isValid(str) {
return (/^([\w\d_\.]{5,})$/i).test(str)
&& !(/\.(dll|com|net|exe|php|html|js|jpeg|jpg|png|tiff|gif)$/i).test(str);
}