Reputation: 1088
How to make regex fit below rules
username.com
xusername.comme
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.com/r/pT0iD8/1
Upvotes: 2
Views: 5154
Reputation: 19344
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|com|net|exe|php|html|js|jpeg|jpg|png|tiff|gif)$/i).test(str);
}
Upvotes: 1
Reputation:
It would be something like this:
^([\w.-](?!\.(com|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
(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
Hope it helps.
Upvotes: 10