>  기사  >  웹 프론트엔드  >  HTML5의 패턴 속성 사용법에 대한 자세한 설명

HTML5의 패턴 속성 사용법에 대한 자세한 설명

黄舟
黄舟원래의
2017-04-24 10:34:5712951검색

최근 모바일 페이지 작업을 하다가 숫자입력 키보드에 문제가 생겼습니다. 기존 접근 방식은 type="tel"을 전면적으로 사용하는 것이었지만, 항상 지우공게에 영문자가 들어가는 느낌이 들었습니다. 전화번호 키보드가 너무 방해가 되었어요. 그래서 다른 구현 솔루션도 해보고 싶었으나 최종 결론은 답답했습니다. 하지만 패턴의 속성 에 대해서도 자세히 알아볼 수 있는 기회를 얻었습니다.

type="tel"과 type="number"의 차이점

먼저 초기에 발생한 문제를 설명하겠습니다. 사실 전화번호도 전화번호도 완벽하지 않습니다.

type="tel"

장점은 iOS와 Android의 키보드 성능이 비슷하다는 점

단점은 강박 장애가 없는데도 그 글자가 너무 중복된다는 것입니다.

type="number"

안드로이드에서 실제 숫자 키보드를 구현한 것이 장점

단점 1: iOS에는 9각형 격자 키보드가 없어 입력이 불편하다

단점 2: 이전 버전의 Android(WeChat에서 사용하는 X5 커널 포함)에는 입력 상자 뒤에 아주 쓸모없는 작은 꼬리가 있습니다. 다행히 Android 4.4.4부터 이 부분이 제거되었습니다.

그러나 두 번째 단점으로 웹킷의 개인 의사 요소를 사용하여 문제를 해결할 수 있습니다.

input[type=number]::-webkit-inner-spin-button,  
    input[type=number]::-webkit-outer-spin-button { 
        -webkit-appearance: none; 
        appearance: none; 
        margin: 0; 
    }

패턴 속성

패턴은 양식 입력의 내용을 확인하는 데 사용됩니다. , 일반적으로 email, tel, number, data class, url 등과 같은 HTML5 Type 속성에는 이미 간단한 데이터 형식 확인 기능이 있습니다. 패턴을 추가하면 프런트 엔드 부분의 확인이 더 간단해집니다. 그리고 더 효율적입니다.

물론 패턴의 속성값은 정규식을 사용해야 합니다.

간단한 번호 확인

두 가지 번호 확인이 있습니다:

<input type="number" pattern="\d">  
<input type="number" pattern="[0-9]*">

양식 확인의 경우 다음과 같은 기능을 수행합니다. 두 정규 표현식은 동일하지만 성능이 매우 다릅니다.

iOS에서는 [0-9]*만 9제곱 숫자 키보드를 활성화할 수 있으며 d는 유효하지 않습니다

Android 4.4 아래(X5 커널 포함)에서는 둘 다 숫자 키보드를 호출합니다.

Android 4.4.4 이상에서는 유형 속성만 인식합니다. 즉, 위 코드가 type="number"를 type= "text로 변경하는 경우입니다. "는 9각형 숫자 키보드 대신 전체 키보드를 불러옵니다.

일반적으로 사용되는 정규 표현식

여기서는 자세히 설명하지 않고 일반적으로 사용되는 정규 표현식을 나열합니다.

신용 카드[ 0-9]{13,16}

UnionPay 카드^62[0-5]d{13,16}$

비자: ^4[0-9]{12 }( ?:[0-9]{3})?$

MasterCard: ^5[1-5][0-9]{14}$

QQ 번호: [1 -9 ][0-9]{4,14}

휴대폰 번호: ^(13[0-9]|14[5|7]|15[0|1|2|3|5| 6 |7|8|9]|18[0|1|2|3|5|6|7|8|9])d{8}$

신분증: ^([0-9 ] ){7,18}(x| 문자, 숫자 및 밑줄 포함

강력한 비밀번호: ^(?=.d)(?=.[a-z])(?=.*[A-Z]).{ 8,10}$ 대문자, 소문자 포함 숫자와의 조합에는

특수문자

를 사용할 수 없으며 길이는 8~10자 한자 7자 또는 14자: ^[u4e00- u9fa5]{1,7}$| ^[dA-Za-z_]{1,14}$

안타깝게도 패턴에 대한 브라우저 지원이 매우 열악합니다. Can I Use

하지만 글 초반에 언급한 대로라면 숫자 키보드를 바꾸면 iOS, Android 모두 문제가 없을 것입니다.

위 내용은 HTML5의 패턴 속성 사용법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.