>  기사  >  웹 프론트엔드  >  정규식 관련 이해

정규식 관련 이해

jacklove
jacklove원래의
2018-05-21 15:33:011633검색

이 글에서는 정규 표현식 관련 지식을 자세히 설명합니다.

d, w, s, [a-zA-Z0-9], b,.,*,+,?,x{3},^,$는 각각 무엇인가요?

d: 메타 문자, [0-9]에 해당하는 숫자와 일치(0에서 9 사이의 하나와 일치)
w: 메타 문자, 문자, 숫자, 밑줄 또는 중국어 문자와 일치, [0-9a-zA-에 해당) Z_];
s: 메타 문자, 모든 공백 문자와 일치
[a-zA-Z0-9]: []는 그 중 하나와 일치하는 범위를 지정합니다. 예에서는 a-z/A-Z/와 일치합니다. w(한자 제외);
b: 단어의 시작 또는 끝과 일치하는 메타 문자(단어 경계):

var a= "hello helloworld"; var reg = /bhellob/;
a.match(reg); //결과는 "hello"입니다.

.: 메타 문자, 개행 문자를 제외한 모든 문자와 일치
*: 한정자, 0회 이상 반복
+: 한정자 기호, 1회 이상 반복;
? : 한정자, 0회 또는 1회 반복됨;
x{3}: 한정자, x가 3회 나타남({n}은 n회 반복됨, {n,m}은 n-m회 반복됨(n,m 포함); {n, }가 반복됨) 최소 n회, 최대 m회 반복됨)
: []의 부정을 의미합니다. ([abc]는 abc 중 하나와 일치하고, [abc]는 abc를 제외한 모든 문자와 일치합니다.) times 문자열의 시작 부분과 일치합니다.
$: 문자열의 끝 부분과 일치합니다. (^hello&: hello로 시작하고 hello로 끝나는 문자열과 일치합니다.)

양쪽의 공백 문자를 제거하는 함수를 작성합니다.

function trim(str) {    return str.replace(/^\s+|\s+$/g,'') //匹配开头或结尾的空白字符,替换成'';
 }

사용자 입력이 이메일 주소인지 판별하는 isEmail(str) 함수를 작성하세요

function isEmail(str) {    var reg = /^[a-zA-Z\d_]+\@[a-zA-Z\d]+\.[a-zA-Z\d]+$/g;    return reg.test(str);
 }

사용자 입력이 휴대폰 번호인지 판별하는 isPhoneNum(str) 함수를 작성하세요

function isPhoneNum(str) {    var reg = /^1[3578]\d{9}$/g;    return reg.test(str);
}

함수 작성 isValidUsername(str)을 사용하여 사용자 입력이 휴대폰 번호인지 확인합니다. 유효한 사용자 이름이 아닙니다(길이 6~20자, 문자, 숫자, 밑줄만 포함할 수 있음)

function isValidUsername(str) {    var reg = /^([a-zA-Z\d_]){6,20}$/g;    return reg.test(str);
}

isValidPassword(str) 함수를 작성하여 확인합니다. 사용자가 유효한 비밀번호를 입력했는지 여부(길이 6~20자, 대문자, 소문자, 숫자, 밑줄 및 최소 두 가지 유형 포함)

function isValidPassword(str) {    if (/^[a-zA-Z0-9_]{6,20}$/g.test(str)) {        if (/^[a-z]{6,20}$/g.test(str) || /^[A-Z]{6,20}$/g.test(str) || /^[0-9]{6,20}$/g.test(str) || /^[_]{6,20}$/g.test(str)) {            return false;
        }else {            return true;
        }
    }else {        return false;
    }
}

다음 문자열의 모든 색상을 얻으려면 정규식을 작성하세요

var re = /*正则...*/var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee "console.log( subj.match(re) )  // ['#121212', '#AA00ef']
var re = /#[a-f\d]{6}/ig;var subj = "color: #121212; background-color: #AA00ef; width: 12px; bad-colors: f#fddee";console.log( subj.match(re) )

다음 코드는 무엇을 출력합니까? [""hunger"", ""world""]

var str = 'hello  "hunger" , hello "world"';var pat =  /".*"/g;
str.match(pat);
//输出[""hunger" , hello "world""];

//정규 표현식은 기본적으로 탐욕적이며 가능한 한 많은 일치 항목을 일치하도록 코드를 다시 작성합니다. 조건이 충족되었습니다.
//코드 다시 작성

var str = 'hello  "hunger" , hello "world"';
var pat =  /".*?"/g;  //添加?改成非贪婪模式,尽可能少的匹配;
str.match(pat); //[""hunger"", ""world""]

이 문서에서는 정규식에 대한 관련 설명을 제공하므로 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트를 참조하세요.

관련 권장 사항:

Javascript에서 이것의 사용

수학, 배열 및 날짜의 관련 예

HTML5/CSS3 관련 지식 설명

위 내용은 정규식 관련 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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