admin 管理员组文章数量: 1086019
How to make regex fit below rules
- allow only letters (uppercase or smallcase), numbers, dot, underscore, dash
- at least 5 characters
- can't contain generic terms or extensions (ex: , ). .php, .mustache, .html, .js, .jpeg, .jpg, .png, .tiff, ..
e.g.
username
x
usernameme
o
here's mine, fail to match if contain dot, underscore, dash,
and how to exclude extension string
^[a-zA-Z0-9_.-]*\w{5,}$
How to make regex fit below rules
- allow only letters (uppercase or smallcase), numbers, dot, underscore, dash
- at least 5 characters
- can't contain generic terms or extensions (ex: ., ). .php, .mustache, .html, .js, .jpeg, .jpg, .png, .tiff, ..
e.g.
username.
x
username.me
o
here's mine, fail to match if contain dot, underscore, dash,
and how to exclude extension string
^[a-zA-Z0-9_.-]*\w{5,}$
https://regex101./r/pT0iD8/1
Share edited Mar 17, 2016 at 0:02 user1575921 asked Mar 16, 2016 at 23:54 user1575921user1575921 1,0881 gold badge18 silver badges29 bronze badges 4-
Is
example.
acceptable? – Shafizadeh Commented Mar 16, 2016 at 23:59 -
no it contains
.
– user1575921 Commented Mar 17, 2016 at 0:00 - 1 Then your third rule is unclear .. – Shafizadeh Commented Mar 17, 2016 at 0:02
- thanks for reply, I update in question – user1575921 Commented Mar 17, 2016 at 0:03
2 Answers
Reset to default 10It would be something like this:
^([\w.-](?!\.(|net|html?|js|jpe?g|png)$)){5,}$
Explaining:
^ # from start
([\w.-] # \w is equal to [a-zA-Z0-9_]
(?!\. # in front can NOT be a dot followed by
( #
|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
Hope it helps.
Though you could (possibly) wrangle it into a single regexp, it would perform really badly... you'd be much better off using a function, that can use two regular expressions.
The second part may be better off with an array check, with all the values split into an array.
function isValid(str) {
return (/^([\w\d_\.]{5,})$/i).test(str)
&& !(/\.(dll||net|exe|php|html|js|jpeg|jpg|png|tiff|gif)$/i).test(str);
}
本文标签:
版权声明:本文标题:javascript - regex allow only letters, numbers, dot, underscore, dash. at least 5 characters - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1741596822a2304756.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论