js 정규식의 기본 구문 요약

零到壹度
풀어 주다: 2018-03-28 14:46:21
원래의
1741명이 탐색했습니다.

이 글은 주로 js 정규식의 기본 구문 요약을 공유하며 좋은 참고 가치가 있으며 모든 사람에게 도움이 되기를 바랍니다. 편집자를 따라가서 살펴보겠습니다.

1. 기본 정규식 구문

두 개의 특수 기호 '^' 및 '$'. 그들의 기능은 각각 문자열의 시작과 끝을 나타내는 것입니다.

예는 다음과 같습니다:

"^The": "The"로 시작하는 모든 문자열을 의미합니다("There", "The cat" 등).

"of 절망$": "로 끝나는 모든 문자열을 의미합니다. of 절망" 문자열;

"^abc$": "abc"로 시작하고 끝나는 문자열을 나타냅니다. 하하, "abc" 자체만 나타냅니다.

"notice": "notice"를 포함하는 문자열을 나타냅니다.

마지막 예와 같이 두 개의 특수 문자를 사용하지 않으면 찾으려는 문자열이 검색된 문자열의 어떤 부분에도 있음을 나타내는 것입니다. 즉, 맨 위에 위치하는 것이 아닙니다.

기타 기호로는 '*', '+', '?' 등이 있는데, 이는 문자 또는 일련의 문자가 반복적으로 나타나는 횟수를 나타냅니다.

각각 "없음 또는 그 이상", "한 번 이상" 및 "없음 또는 한 번"을 의미합니다.


다음은 몇 가지 예입니다.

"ab*": 문자열에 a 다음에 0개 또는 여러 개의 b가 있음을 나타냅니다. ("a", "ab", "abbb",...);

"ab+": 문자열에 a가 하나 이상 있음을 나타냅니다.

"ab?": 문자열을 나타냅니다. a 다음에 0개 또는 1개의 b가 있습니다.

"a?b+$": 문자열 끝에 a가 0개 또는 1개 있고 b가 1개 또는 여러 개 있다는 의미입니다.

중괄호로 묶인 범위를 사용하여 반복 범위를 나타낼 수도 있습니다.

"ab{2}": 문자열에 a 뒤에 2개의 b가 있음을 나타냅니다("abb").

"ab{2,}": 문자열에 a 뒤에 최소한 2개의 b가 있음을 나타냅니다.

"ab{3,5}": 문자열에 a 다음에 3~5b가 있음을 나타냅니다.

범위의 하한을 지정해야 한다는 점에 유의하세요(예: "{,2}" 대신 "{0,2}").

또한 '*', '+' 및 '?'는 "{0,}", "{1,}" 및 "{0,1}"과 동일하다는 점을 눈치채셨을 것입니다.

"또는" 연산을 의미하는 '¦'도 있습니다.

"hi¦hello": 문자열에 "hi" 또는 "hello"가 있음을 의미합니다.

"(b¦cd)ef": "bef" 또는 "cdef"를 의미합니다.

"(a¦b)*c": "a"와 "b" 뒤에 "c"가 오는 혼합 문자열을 나타냅니다.'

"a.[0-9]": 문자열에 "a" 뒤에 임의의 문자와 숫자가 있음을 나타냅니다.

"^.{3}$": 세 문자로 구성된 문자열을 나타냅니다. 길이는 3자입니다.)

대괄호는 특정 문자가 문자열의 특정 위치에 나타날 수 있음을 나타냅니다.

"[ab]": 문자열에 "a" 또는 "b"가 있음을 나타냅니다. to "a¦b");

"[a-d]": 문자열에 소문자 'a' ~ 'd' 중 하나가 포함되어 있음을 나타냅니다("a¦b¦c¦d" 또는 "[abcd ]"와 동일). ;

"^[a-zA-Z]": 문자로 시작하는 문자열을 나타냅니다.

"[0-9]%": 백분율 기호 앞에 있는 숫자를 나타냅니다.

",[a-zA-Z0-9]$": 문자열이 쉼표로 끝나고 그 뒤에 문자나 숫자가 오는 것을 나타냅니다.

대괄호 안에 '^'를 사용하여 원하지 않는 문자를 나타낼 수도 있습니다. '^'는 대괄호 안의 첫 번째 문자여야 합니다.

(예: "%[^a-zA-Z]%"는 두 개의 퍼센트 기호 사이에 문자가 나타나지 않아야 함을 의미합니다).

그대로 표현하려면 "^.$()¦*+?{" 문자 앞에 시프트 문자 ''를 추가해야 합니다.

대괄호 안에는 이스케이프 문자가 필요하지 않습니다.

2. 텍스트 상자의 입력 문자 유형을 제어합니다

1. 숫자와 영어만 입력할 수 있습니다:

로그인 후 복사

2. 숫자만 입력할 수 있습니다:

로그인 후 복사

3. 전각 문자만 입력 가능:


로그인 후 복사

4. 한자만 입력 가능:

로그인 후 복사

3 정규식 적용 예시에 대한 인기 설명

* ***** ********************************************* ****** *************************

//모두 숫자로 구성되어 있는지 확인

/^[0- 9]{1,20}$/

^은 ^

$ 바로 다음의 시작 문자가 규칙과 일치해야 함을 의미합니다. 즉, $

[] 직전의 시작 문자가 규칙과 일치해야 한다는 의미는 선택적 문자 집합입니다

[0-9] 필수 문자 범위가 0-9임을 나타냅니다

{1,20}은 숫자 문자열의 합법적인 길이가 1~20, 즉 [0-9]의 문자 발생 횟수 범위가 1~20번임을 의미합니다.

/^ 및 $/는 문자열의 하위 문자열만 일치시키는 것이 아니라 전체 문자열이 정의된 규칙과 완전히 일치해야 함을 나타내기 위해 쌍으로 사용해야 합니다.

************************************************* ***** *********************************

//로그인 이름 확인: 5-20만 문자를 입력할 수 있습니다. 숫자, "_", "."를 포함할 수 있는 문자열로 시작합니다.

/^[a-zA-Z]{1}([a-zA-Z0-9]|[._] ){4,19 }$/

^[a-zA-Z]{1}는 첫 번째 문자가 문자여야 함을 의미합니다.

([a-zA-Z0-9]|[._]){4,19}는 길이가 4~9자리 문자열인 두 번째 숫자(이전 표현식 바로 뒤에 오기 때문에)부터 시작한다는 의미입니다. 대문자, 소문자, 숫자 또는 특수문자 집합[._]으로 구성되어야 합니다.

************************************************* ***** ************************************

//사용자 이름 확인: 만 1~30자까지 입력 가능

/^[a-zA-Z]{1,30}$/

********************로 시작하는 문자열 ****** ******************************************** ******* *****

//인증비밀번호 : 영문, 숫자, 밑줄 6~20자만 입력 가능

/^(w){6,20}$/

w: 문자, 숫자 또는 밑줄 문자를 일치시키는 데 사용됩니다.

**************************************** ******* *************************************

//확인 일반 전화 및 팩스 번호: "+" 또는 숫자로 시작할 수 있고 "-" 및 "

/^[+]{0,1}(d){1,3}[ ]?( [-]?((d)| [ ]){1,12})+$/

d: 0에서 9까지의 숫자를 일치시키는 데 사용됩니다.

“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次

可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等

*******************************************************************************
//校验URL

/^http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}$/ (表示url串的长度为length(“https://”) + n )
\ / :表示字符“/”。

. 表示所有字符的集

+ 等同于{1,},就是1到正无穷吧。

*******************************************************************************

//校验纯中文字符
/

^[\u4E00-\u9FA5]+$/

[\u4E00-\u9FA5] :估计是中文字符集的范围吧

以上表达式均在下面的javascript中测试通过


   
로그인 후 복사

规则表达式 :


 (填写/ /之间的表达式) 
로그인 후 복사

校验字符串 :

    
로그인 후 복사

4.正則表達式應用

"^\d+$"  //非负整数(正整数 + 0)

"^[0-9]*[1-9][0-9]*$"  //正整数

"^((-\d+)|(0+))$"  //非正整数(负整数 + 0)

"^-[0-9]*[1-9][0-9]*$" //음의 정수

"^-?d+$" //정수

"^d+(.d+) ?$"  //음수가 아닌 부동 소수점 수(양의 부동 소수점 수 + 0)

"^(([0-9]+.[0-9]*[1-9][0-9]* )|( [0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$ " // 양의 부동 소수점 수

"^((-d+(.d+)?)|(0+(.0+)?))$" //양수가 아닌 부동 소수점 수(음의 부동 소수점 수 + 0)

"^ (-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][ 0-9]*.[ 0-9]+)|([0-9]*[1-9][0-9]*)))$"  // 음의 부동 소수점 수

"^(- ?d+)(.d+)? $" // 부동 소수점 숫자

"^[A-Za-z]+$" // 26개의 영문자로 구성된 문자열

"^[A-Z]+$" // 영문 26자로 구성된 문자열 대문자로 구성된 문자열

"^[a-z]+$" //영문 26자로 구성된 문자열

"^[A-Za-z0-9]+$ " //구성됨 숫자와 영문 26자리로 구성된 문자열

"^w+$" // 숫자와 영문 26자리 또는 밑줄로 구성된 문자열

"^[w-]+(.[w- ]+ )*@[w-]+(.[w-]+)+$"    //이메일 주소

"^[a-zA-z]+://(w+(-w+)*)( .( w+(-w+)*))*(?S*)?$"  //url

/^(d{2}|d{4})-((0([1-9]{1 }) )|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 연월- 일

/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))| (3 [0|1]))/(d{2}|d{4})$/ // 월/일/년

"^([w-.]+)@(([[0- 9] {1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA- Z] {2,4}|[0-9]{1,3})(]?)$" //Emil

"(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码

"^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址

^([0-9A-F]{2})(-[0-9A-F]{2}){5}$ //MAC地址的正则表达式

^[-+]?\d+(\.\d+)?$ //值类型正则表达式

5.javascript正则表达式检验

//校验是否全由数字组成


function isDigit(s) { var patrn=/^[0-9]{1,20}$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串

function isRegisterUserName(s) { var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验用户姓名:只能输入1-30个以字母开头的字串

function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验密码:只能输入6-20个字母、数字、下划线

function isPasswd(s) { var patrn=/^(\w){6,20}$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”

function isTel(s) { //var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/; var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验手机号码:必须以数字开头,除数字外,可含有“-”

function isMobil(s) { var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验邮政编码

function isPostalCode(s) { //var patrn=/^[a-zA-Z0-9]{3,12}$/; var patrn=/^[a-zA-Z0-9 ]{3,12}$/; if (!patrn.exec(s)) return false return true }
로그인 후 복사

//校验搜索关键字

function isSearch(s) { var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;\'\,.<>?]{0,19}$/; if (!patrn.exec(s)) return false return true } function isIP(s) //by zergling { var patrn=/^[0-9.]{1,20}$/; if (!patrn.exec(s)) return false return true } /********************************************************************************* * FUNCTION: isBetween * PARAMETERS: val AS any value * lo AS Lower limit to check * hi AS Higher limit to check * CALLS: NOTHING * RETURNS: TRUE if val is between lo and hi both inclusive, otherwise false. **********************************************************************************/ function isBetween (val, lo, hi) { if ((val < lo) || (val > hi)) { return(false); } else { return(true); } } /********************************************************************************* * FUNCTION: isDate checks a valid date * PARAMETERS: theStr AS String * CALLS: isBetween, isInt * RETURNS: TRUE if theStr is a valid date otherwise false. **********************************************************************************/ function isDate (theStr) { var the1st = theStr.indexOf('-'); var the2nd = theStr.lastIndexOf('-'); if (the1st == the2nd) { return(false); } else { var y = theStr.substring(0,the1st); var m = theStr.substring(the1st+1,the2nd); var d = theStr.substring(the2nd+1,theStr.length); var maxDays = 31; if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { return(false); } else if (y.length < 4) { return(false); } else if (!isBetween (m, 1, 12)) { return(false); } else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; else if (m==2) { if (y % 4 > 0) maxDays = 28; else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; else maxDays = 29; } if (isBetween(d, 1, maxDays) == false) { return(false); } else { return(true); } } } /********************************************************************************* * FUNCTION: isEuDate checks a valid date in British format * PARAMETERS: theStr AS String * CALLS: isBetween, isInt * RETURNS: TRUE if theStr is a valid date otherwise false. **********************************************************************************/ function isEuDate (theStr) { if (isBetween(theStr.length, 8, 10) == false) { return(false); } else { var the1st = theStr.indexOf('/'); var the2nd = theStr.lastIndexOf('/'); if (the1st == the2nd) { return(false); } else { var m = theStr.substring(the1st+1,the2nd); var d = theStr.substring(0,the1st); var y = theStr.substring(the2nd+1,theStr.length); var maxDays = 31; if (isInt(m)==false || isInt(d)==false || isInt(y)==false) { return(false); } else if (y.length < 4) { return(false); } else if (isBetween (m, 1, 12) == false) { return(false); } else if (m==4 || m==6 || m==9 || m==11) maxDays = 30; else if (m==2) { if (y % 4 > 0) maxDays = 28; else if (y % 100 == 0 && y % 400 > 0) maxDays = 28; else maxDays = 29; } if (isBetween(d, 1, maxDays) == false) { return(false); } else { return(true); } } } } /******************************************************************************** * FUNCTION: Compare Date! Which is the latest! * PARAMETERS: lessDate,moreDate AS String * CALLS: isDate,isBetween * RETURNS: TRUE if lessDateDate2) { return(false);} return(true); } /********************************************************************************* * FUNCTION isEmpty checks if the parameter is empty or null * PARAMETER str AS String **********************************************************************************/ function isEmpty (str) { if ((str==null)||(str.length==0)) return true; else return(false); } /********************************************************************************* * FUNCTION: isInt * PARAMETER: theStr AS String * RETURNS: TRUE if the passed parameter is an integer, otherwise FALSE * CALLS: isDigit **********************************************************************************/ function isInt (theStr) { var flag = true; if (isEmpty(theStr)) { flag=false; } else { for (var i=0; i decLen) return(false); else if (!isInt(intPart) || !isInt(decPart)) return (false); else if (isEmpty(decPart)) return (false); else return(true); } } /********************************************************************************* * FUNCTION: isEmail * PARAMETER: String (Email Address) * RETURNS: TRUE if the String is a valid Email address * FALSE if the passed string is not a valid Email Address * EMAIL FORMAT: AnyName@EmailServer e.g; webmaster@hotmail.com * @ sign can appear only once in the email address. *********************************************************************************/ function isEmail (theStr) { var atIndex = theStr.indexOf('@'); var dotIndex = theStr.indexOf('.', atIndex); var flag = true; theSub = theStr.substring(0, dotIndex+1) if ((atIndex < 1)||(atIndex != theStr.lastIndexOf('@'))||(dotIndex < atIndex + 2)||(theStr.length <= theSub.length)) { return(false); } else { return(true); } } /********************************************************************************* * FUNCTION: newWindow * PARAMETERS: doc -> Document to open in the new window hite -> Height of the new window wide -> Width of the new window bars -> 1-Scroll bars = YES 0-Scroll Bars = NO resize -> 1-Resizable = YES 0-Resizable = NO * CALLS: NONE * RETURNS: New window instance **********************************************************************************/ function newWindow (doc, hite, wide, bars, resize) { var winNew="_blank"; var opt="toolbar=0,location=0,directories=0,status=0,menubar=0,"; opt+=("scrollbars="+bars+","); opt+=("resizable="+resize+","); opt+=("width="+wide+","); opt+=("height="+hite); winHandle=window.open(doc,winNew,opt); return; } /********************************************************************************* * FUNCTION: DecimalFormat * PARAMETERS: paramValue -> Field value * CALLS: NONE * RETURNS: Formated string **********************************************************************************/ function DecimalFormat (paramValue) { var intPart = parseInt(paramValue); var decPart =parseFloat(paramValue) - intPart; str = ""; if ((decPart == 0) || (decPart == null)) str += (intPart + ".00"); else str += (intPart + decPart); return (str); }
로그인 후 복사

"^\\d+$"  //非负整数(正整数 + 0)

"^[0-9]*[1-9][0-9]*$"  //正整数

"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)

"^-[0-9]*[1-9][0-9]*$"  //负整数

"^-?\d+$"    //정수

"^\d+(\.\d+)?$"   //음수가 아닌 부동 소수점 수(양의 부동 소수점 수 + 0)

"^( ([0 -9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0 -9] +)|([0-9]*[1-9][0-9]*))$" //양수 부동 소수점 수

"^((-\d+(\.\d+) ?)|( 0+(\.0+)?))$" //양수가 아닌 부동 소수점 수(음의 부동 소수점 수 + 0)

"^(-(([0-9]+\. [0-9]*[ 1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0 -9]*[1- 9][0-9]*)))$" //음수 부동 소수점

"^(-?\d+)(\.\d+)?$" //부동 소수점 number

"^[A-Za-z]+$" //영문 26자로 구성된 문자열

"^[A-Z]+$" //영문 대문자 26자로 구성된 문자열

" ^[a-z] +$" // 영문 소문자 26자로 구성된 문자열

"^[A-Za-z0-9]+$" // 숫자와 영문 26자로 구성된 문자열

" ^ \w+$" //숫자, 영문 26자 또는 밑줄로 구성된 문자열

"^[\w-]+(\.[\w-]+)*@[\w-]+( \.[ \w-]+)+$"    //이메일 주소

"^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-- \w+ )*))*(\?\S*)?$"  //url

위는 여러분과 공유하는 정규식의 기본 구문입니다. 모든 분들이 학습하는 데 도움이 되기를 바랍니다.

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

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!