我想像這樣驗證電話號碼
- 08xxxxxxxxx
- 08xxxxxxxxx
- 08xxxxxxxxxxxx
第一位和第二位數字必須是08,后面跟著其他數字 最少 10 位,最多 15 位
我已經試過這個代碼
<form>
<input type="tel" name="no_hp" class="form-control" pattern="[0]{1}[8]{1}[0-9]" maxlength="15" oninvalid="this.setCustomValidity('Nomor telepon harus di awali dengan 08 dan minimal 10')" required>
<input type="submit">
</form>
在下面的視頻中,我嘗試輸入089并成功但嘗試沒有至少 10 位數字

但在下面的視頻中,如果我嘗試輸入錯誤的第一個數字189,然后更新為與第一個視頻相同的正確數字089,它仍然說數字錯誤。

那么為什么在我正確格式化數字(以 開頭08)后,它仍然說數字是錯誤的?如何解決?
uj5u.com熱心網友回復:
我認為您可以直接使用以下正則運算式作為輸入欄位上的模式,或者使用它javascript來執行相同操作并向用戶顯示警告訊息。
JS方法
const regex = new RegExp('^08[0-9]{8,13}$', 'gm');
if (regex.test('088884444714255')) {
console.log('valid number');
}else{
console.log('invalid number');
}
if (regex.test('0888844447142555')) {
console.log('valid number');
}else{
console.log('invalid number');
}
if (regex.test('078844447142555')) {
console.log('valid number');
}else{
console.log('invalid number');
}
HTML 模式方法
<form>
<input type="tel" name="no_hp" class="form-control" pattern="^08[0-9]{8,13}$" oninvalid=" this.setCustomValidity('Nomor telepon harus di awali dengan 08 dan minimal 10')" oninput="this.setCustomValidity('')" required>
<input type="submit">
</form>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/347498.html
