이 기능이 작동하도록하고 싶습니다.
function ausPhoneValidate(str){if (/^(?:\\+?(61))? ?(?:\\((?=.*\\)))?(0?[2-57-8])\\)? ?(\\d\\d(?:[- ](?=\\d{3})|(?!\\d\\d[- ]?\\d[- ]))\\d\\d[- ]?\\d[- ]?\\d{3})$/.test(str)){return true;}return false;}
다음 정규식을 사용하여 :
pattern="^(?:\+?(61))? ?(?:\((?=.*\)))?(0?[2-57-8])\)? ?(\d\d(?:[- ](?=\d{3})|(?!\d\d[- ]?\d[- ]))\d\d[- ]?\d[- ]?\d{3})"
이 바이올린 JSfiddle 을 확인하세요.
Additional Information
호주 전화를 확인하는 HTML 정규식이 있습니다.
<div>
<input class='rform-input' type="text" id="phone" name="phone" required placeholder=" " pattern="^(?:\+?(61))? ?(?:\((?=.*\)))?(0?[2-57-8])\)? ?(\d\d(?:[- ](?=\d{3})|(?!\d\d[- ]?\d[- ]))\d\d[- ]?\d[- ]?\d{3})" />
<label for="last_name">Phone number</label>
<div class="requirements">
Please enter an Australia phone number.
</div>
</div>
이제 Australia Phone의 유효성을 검사하려면 JS 함수가 필요하지만이 함수를 문자열로 작성해야합니다. 그러면 element.innerHTML = ''
를 호출하여 페이지에 구현합니다. 내가 가진 것은 다음과 같습니다.
function script_render(scr){return `<script type="text/javascript">document.getElementById("booking-p-submit").addEventListener("click", ()=>{${scr}})</script>`;}
function users_script(){
var str = '';
// str += `function emailValidate(str){if (/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(str)){return true;}return false;}`;
// str += `if(!emailValidate(document.getElementById('email-input').value)){document.getElementById('wform-error').innerHTML = 'Invalid Email'};`;
str += `function ausPhoneValidate(str){if (/^(?:\\+?(61))? ?(?:\\((?=.*\\)))?(0?[2-57-8])\\)? ?(\\d\\d(?:[- ](?=\\d{3})|(?!\\d\\d[- ]?\\d[- ]))\\d\\d[- ]?\\d[- ]?\\d{3})$/.test(str)){return true;}return false;}`
str += `if(!ausPhoneValidate(document.getElementById('phone-input').value)){document.getElementById('wform-error').innerHTML = 'Invalid Phone'};`;
return script_render(str);
}
내가해온 줄은 이메일에 대한 유효성 검사입니다. 백 슬래시를 이스케이프 처리 했으므로 제대로 작동하지만 두 번째 부분을 실행하면 SyntaxError : Invalid regular expression : unmatched parentheses "
코드를 이해하고 도움을 제공하는 것이 매우 어려울 수 있다는 점에 대해 사과드립니다. 또한 테스트는 복잡합니다. 누군가가 제안을한다면 너무 기뻐할 것입니다.