我从StackOverFlow问题/答案中尝试了很多方法,但无法实现以下验证。
1)长度至少应为4个字符
2)仅允许使用字母数字字符和“-”
3)不允许两个“-”在一起
4)密码不得以“-”开头或结尾
抱歉可能很简单,但我是regex的新手。
答案 0 :(得分:1)
不是那么简单,我的猜测是,也许这个表达式
app.config(['$locationProvider', function($locationProvider) {
$locationProvider.html5Mode(false).hashPrefix('');
}]);
可能具有所需的规则。
在this demo的右上角解释了该表达式,如果您想进一步探索或修改它,并且在this link中,您可以观察它如何与某些示例输入匹配,如果你喜欢。
jex.im可视化正则表达式:
答案 1 :(得分:1)
您可以使用以下正则表达式:
^(?!^-|.+-{2,}|.+-$)[A-Za-z\d-]{4,}$
^
匹配字符串的开头(?!^-|.+-{2,}|.+-$)
负向查找,以防止在字符串的开头和结尾以及多个-
处匹配-
。[A-Za-z\d-]{4,}
匹配至少四个字母和/或数字,带有或不带有一个-
。$
匹配字符串的结尾