이번에는 정규 표현식의 구문을 소개하겠습니다. 정규 표현식은 일반 문자와 특수 문자를 포함하는 텍스트 패턴입니다.
1. 정규식의 기본 구문
두 개의 특수 기호 '^'와 '$'. 그들의 기능은 각각 문자열의 시작과 끝을 나타내는 것입니다. 예는 다음과 같습니다.
"^The": "The"로 시작하는 모든 문자열을 나타냅니다("There", "The cat" 등).
"of 절망$": "of 절망"으로 끝나는 모든 문자열을 나타냅니다. ;
"^abc$": "abc"로 시작하고 끝나는 문자열을 나타냅니다. 하하, "abc" 자체만 나타냅니다.
"notice": "notice"가 포함된 문자열을 나타냅니다.
마지막 예와 같이 두 개의 특수 문자를 사용하지 않으면 찾으려는 문자열이 검색된 문자열의 어떤 부분에도 있음을 나타내는 것입니다. 즉, 맨 위에 위치하는 것이 아닙니다.
이상", "한 번 이상" 및 "없음 또는 한 번"을 의미합니다. 다음은 몇 가지 예입니다.
"ab+": 문자열에 a가 하나 이상 있음을 나타냅니다.
"ab?": 문자열에 a가 하나 이상 있음을 나타냅니다. a a 뒤에는 0개 또는 1개의 b가 옵니다.
"a?b+$": 문자열 끝에 0개 또는 1개의 a가 있고 1개 또는 여러 개의 b가 있음을 의미합니다.
"ab{2,}": 문자열에 a 뒤에 최소한 2개의 b가 있음을 나타냅니다. " ab{3,5}": 문자열에 a 다음에 3~5 b가 있음을 나타냅니다.
범위의 하한을 지정해야 합니다(예: "{,2}" 대신 "{0,2}"). 또한 '*', '+' 및
"or" 연산을 의미하는 '¦'도 있습니다.
"hi¦hello": 문자열에 "hi" 또는 "hello"가 있음을 의미합니다.
"(a¦b)*c": "a"와 "b" 뒤에 "c"가 오는 혼합 문자열을 나타냅니다.
'.' 모든 문자를 대체할 수 있습니다:
" a .[0-9]": 문자열에 "a" 뒤에 임의의 문자와 숫자가 있음을 나타냅니다.
"^.{3}$": 임의의 3자로 구성된 문자열을 나타냅니다(길이는 3자).
대괄호는 특정 문자가 문자열의 특정 위치에 나타날 수 있음을 나타냅니다.
"[ab]":表示一个字符串有一个"a"或"b"(相当于"a¦b");"[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a¦b¦c¦d"或者"[abcd]");"^[a-zA-Z]":表示一个以字母开头的字符串;"[0-9]%":表示一个百分号前有一位的数字;",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。
또한 대괄호 안에 '^'를 사용하여 원하지 않는 문자를 나타낼 수도 있습니다. '^'는 사각형 안에 있어야 합니다. 괄호. (예: "%[^a-zA-Z]%"는 두 퍼센트 기호 사이에 문자가 없어야 함을 의미합니다.)
그대로 표현하려면 "^.$()¦*+?{" 문자 앞에 시프트 문자 ''를 추가해야 합니다.
문자 유형
1.只能输入数字和英文的: <input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1"> 2.只能输入数字的: <input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2"> 3.只能输入全角的: <input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3"> 4.只能输入汉字的: <input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">
**************** ************************************************** ***************
//校验是否全由数字组成 /^[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中测试通过 <html> <script language="JavaScript"> <!-- function regx(r,s) { if (r == null || r == ""){ return false; } var patrn= new RegExp(r); if (patrn.exec(s)) return true return false } --> </script> <body> <form> 规则表达式 : <input type="input" name="regxStr" value="" > (填写/ /之间的表达式) <br> 校验字符串 : <input type="input" name="str" value="" > <input type="button" name="match" value="匹配" onClick="alert(regx(regxStr.value,str.value));"> </form> </body> </html>
이 사례를 읽으신 후 방법을 마스터하셨다고 생각합니다. 더 흥미로운 정보를 보려면 PHP 중국어 웹사이트의 기타 관련 기사를 주목하세요!
Js를 사용하여 HTTP 쿠키를 구현하는 단계
위 내용은 정규식 구현 단계의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!