你的正則表達式匹配只是全角字符,必須與普通字符來測試你的價值。
有錯誤或可能的「預期行爲」與INPUT TYPE =「電子郵件」,它的全角字符轉換成正常的,如果它是有效的,直到@。
一個爲你解決辦法是改變TYPE =「電子郵件」爲type =「text」和使用另一種模式用於電子郵件和編輯,如果你要regex.test返回,而不是
regex = /^([a-z0-9_\.-]+\@[\da-z\.-]+\.[a-z\.]{2,6})$/gm
新的測試
regex = /^([a-z0-9_\.-]+\@[\da-z\.-]+\.[a-z\.]{2,6})$/gm
/^([a-z0-9_\.-]+\@[\da-z\.-]+\.[a-z\.]{2,6})$/gm
regex.test('[email protected]mail.com')
false
regex.test('rahul@mail.com')
false
regex.test('[email protected]')
true
您的代碼將變成:
window.Parsley.addValidator('validateFullWidthCharacters', {
validateString: function(_value) {
regex = /^([a-z0-9_\.-]+\@[\da-z\.-]+\.[a-z\.]{2,6})$/gm;
return regex.test(_value);
},
messages: {
en: 'Please enter a valid email address.'
}
});
HTML
<input placeholder="e.g. [email protected]" class="form-control parsley-success" id="user_email" data-parsley-required="" data-parsley-type="email" data-parsley-validate-full-width-characters="true" type="text" value="" name="user[email]" data-parsley-id="17">
window.Parsley
.addValidator('validateFullWidthCharacters', {
requirementType: 'string',
validateString: function (value, requirement) {
regex = /^([a-z0-9_\.-]+\@[\da-z\.-]+\.[a-z\.]{2,6})$/gm;
return regex.test(value);
},
messages: {
en: 'Please enter a valid email address.'
}
});
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/parsley.js/2.7.2/parsley.min.js"></script>
</head>
<body>
<form data-parsley-validate>
<input type="text" name="email" placeholder="e.g. [email protected]" data-parsley-validate-full-width-characters="true">
<button>Submit</button>
</form>
</body>
</html>
你的問題應該被打上標籤的正則表達式IMO –