[英]How to match password and confirm password with regex validation for uppercase and number
[英]Js regex for password validation match
我將以下正則表達式與abide Foundation結合使用以驗證密碼:
<form id="setPassword" action="{{ url('changePasswordWithoutToken') }}" method="POST" class="account setPassword" data-abide="ajax" novalidate="novalidate">
{{ csrfToken() }}
<input type="hidden" name="token" value="{{ data.token }}"/>
<div class="row">
<div class="large-12 columns"><p>{{ 'PLEASECHOOSEAPASSWORD'|trans }}</p></div>
<div class="large-12 columns">
<label class="password" for="setPasswordField">
<input type="password" id="setPasswordField" name="setPasswordField" pattern="passwordAdditional" required placeholder="{{ 'ACCOUNTLOGINLABELPASSWORD'|trans }}" />
<small class="error">{{ 'PASSWORDSHOULDCONTAIN'|trans }}</small>
</label>
</div>
</div>
<div class="row">
<div class="large-12 columns">
<label class="confirmPassword" for="confirmSetPassword">
<input type="password" id="confirmSetPassword" name="confirmSetPassword" data-equalto="setPasswordField" required placeholder="{{ 'CONFIRMPASSWORD'|trans }}" />
<small class="error">{{ 'ACCOUNTREGISTRATIONERRORDIFFERENTPASSWORDS'|trans }}</small>
</label>
</div>
</div>
<div class="row">
<div class="small-12 medium-5 large-4 columns">
<button type="submit" class="button" id="setPasswordBtn">{{ 'SAVECHANGES'|trans }}</button>
</div>
</div>
JS:
模式:{passwordAdditional:/ ^(?=。 [az])(?=。 [AZ])(?=。 \\ d)(?=。 [_ \\ W \\ S])。{8,} /}
當我輸入不帶符號的新密碼時,似乎看不到該符號,驗證消息消失了。 不應該,因為我沒有在新密碼中插入任何符號。 我的正則表達式錯了嗎?
您的正則表達式有誤,您犯了2個錯誤:
(?=.[az])
正在尋找一個字符,后跟一個小寫字母,但是您的目的是在字符串中找到一個小寫字母,因此.
應修改*
(0次或多次)
(?=.[_\\W\\S])
正在尋找一個字符,后跟下划線,非單詞或非空格,從字面上看,這就是所有字符。 這似乎是您檢查符號的方法,但它始終會匹配(如果至少有2個字符)。 我會使用否定來實現,例如(?=.*[^a-zA-Z0-9\\s])
這導致以下正則表達式
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^a-zA-Z0-9\s]).{8,}$/
您可以查看https://regex101.com/r/dG9xL8/1以獲取演示。
希望這可以幫助。
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/
它至少需要1個大寫和小寫字母,一個數字和一個符號(在#?!@$%^&*-
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.