Regex Angular ng模式不检查我的正则表达式的字符上限
我刚刚开始用一些正则表达式测试ng模式,这些正则表达式我在非角度项目中使用过,并且工作得很好。但使用ng模式,它们似乎不起作用。例如,我有一个正则表达式,它可以成功地检查至少包含1个字母和1个数字字符的6-20个字符的字符串:Regex Angular ng模式不检查我的正则表达式的字符上限,regex,angularjs,Regex,Angularjs,我刚刚开始用一些正则表达式测试ng模式,这些正则表达式我在非角度项目中使用过,并且工作得很好。但使用ng模式,它们似乎不起作用。例如,我有一个正则表达式,它可以成功地检查至少包含1个字母和1个数字字符的6-20个字符的字符串: "^.*(?=.{6,20})(?=.*\d)(?=.*[a-zA-Z]).*$" 但是,在我下面的示例中,它成功地检查了所有内容,但字符串超过20个字符时未触发: <div class="controls"> <input t
"^.*(?=.{6,20})(?=.*\d)(?=.*[a-zA-Z]).*$"
但是,在我下面的示例中,它成功地检查了所有内容,但字符串超过20个字符时未触发:
<div class="controls">
<input type="text" ng-model="user.Password" id="Password" name="Password" title="Password" required ng-pattern="^/.*(?=.{6,20})(?=.*\d)(?=.*[a-zA-Z]).*$/" />
<span ng-show="form.Password.$dirty && form.Password.$error.required">{{'_PasswordRequired_' | i18n}}</span>
<span ng-show="form.Password.$dirty && form.Password.$error.pattern">{{'_PasswordLengthAndAlphanumeric_' | i18n}}</span>
</div>
{{''u密码必需{''i18n}
{{{u PasswordLengthAndAlphanumeric}
语法中是否有错误,或者是否有其他原因导致此操作不起作用?您缺少一个结束锚,并且您有一个
*
太多(在开始时):
但无论如何,在前瞻之外进行长度检查会更容易(也更明显):
"^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$"
(这反过来让我问你为什么要设置这么低的上限?例如,我的KeePass生成的密码长度通常至少为30个字符)谢谢Tim,关于正则表达式,我并不声称自己有很多知识……非常感谢您提供的有益解释:)这只是一个学习练习,主要是因为下限和上限并不是一个真正的问题。在正则表达式语法方面,Angular似乎更为严格,因为这在非Angular项目中确实有效。
"^(?=.{6,20}$)(?=.*\d)(?=.*[a-zA-Z]).*$"
"^(?=.*\d)(?=.*[a-zA-Z]).{6,20}$"