Home > Web Front-end > JS Tutorial > Regular expression implementation steps

Regular expression implementation steps

php中世界最好的语言
Release: 2017-12-02 11:08:06
Original
1899 people have browsed it

This time I will introduce to you the syntax of regular expression. Regular expression is a text pattern, including ordinary characters and special characters. The regular pattern describes how to search for text. To match one or more strings.

1. Basic syntax of regular expressions

Two special symbols '^' and '$'. Their function is to indicate the beginning and end of a string respectively. Examples are as follows:

"^The": indicates all strings starting with "The" ("There", "The cat", etc.);
"of despair$": indicates all strings starting with "of" A string ending in despair";
"^abc$": indicates a string that starts and ends with "abc" - haha, only "abc" itself;
"notice": indicates any string containing " notice" string.

Like the last example, if you don't use two special characters, you are indicating that the string you want to find is any part of the searched string - you are not
positioning it at the top of a certain .

Other symbols include '*', '+' and '?', which represent the number of times a character or a sequence of characters appears repeatedly. They mean "none or
more", "once or more" and "none or once" respectively. Here are a few examples:

"ab*": Indicates that a string has an a followed by zero or several b. ("a", "ab", "abbb",...);
"ab+": Indicates that a string has an a followed by at least one b or more;
"ab?": Indicates a The string has an a followed by zero or one b;
"a?b+$": means that there is zero or one a followed by one or several b at the end of the string.

You can also use a range, enclosed in curly brackets, to indicate the range of repetitions.

"ab{2}": Indicates that a string has an a followed by 2 b ("abb");
"ab{2,}": Indicates that a string has an a followed by at least 2 b;
"ab{3,5}": Indicates that a string has an a followed by 3 to 5 b.

Please note that you must specify the lower limit of the range (eg: "{0,2}" instead of "{,2}"). Also, you may have noticed that '*', '+' and
'?' are equivalent to "{0,}", "{1,}" and "{0,1}".
There is also a '¦', which means "or" operation:

"hi¦hello": indicates that there is "hi" or "hello" in a string;
"(b¦cd )ef": represents "bef" or "cdef";
"(a¦b)*c": represents a string of "a" and "b" mixed strings followed by a "c";

'.' can replace any character:

"a.[0-9]": Indicates that a string has an "a" followed by an arbitrary character and a number;
"^. {3}$": Indicates a string of any three characters (length is 3 characters);

Square brackets indicate that certain characters are allowed to appear at a specific position in a string:

"[ab]":表示一个字符串有一个"a"或"b"(相当于"a¦b");"[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a¦b¦c¦d"或者"[abcd]");"^[a-zA-Z]":表示一个以字母开头的字符串;"[0-9]%":表示一个百分号前有一位的数字;",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。
Copy after login

You can also use '^' in square brackets to indicate unwanted characters. '^' should be the first one in the square brackets. (For example: "%[^a-zA-Z]%" means
means no letters should appear between the two percent signs).

In order to express verbatim, you must add the escape character '\' before the characters "^.$()¦*+?{\".

Please note that within square brackets, no escape characters are required.

2. Regular expression verification control text box input Character type

1.只能输入数字和英文的:
<input onkeyup="value=value.replace(/[\W]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" ID="Text1" NAME="Text1">
2.只能输入数字的:
<input onkeyup="value=value.replace(/[^\d]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" ID="Text2" NAME="Text2">
3.只能输入全角的:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;))" ID="Text3" NAME="Text3">
4.只能输入汉字的:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;))" ID="Text4" NAME="Text4">
Copy after login

3. Regular expression application examples popular description

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

//校验是否全由数字组成
/^[0-9]{1,20}$/
^ 表示打头的字符要匹配紧跟^后面的规则
$ 表示打头的字符要匹配紧靠$前面的规则
[ ] 中的内容是可选字符集
[0-9] 表示要求字符范围在0-9之间
{1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次。/^ 和 $/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串。
Copy after login
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
^[a-zA-Z]{1} 表示第一个字符要求是字母。
([a-zA-Z0-9]|[._]){4,19} 表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度为4到9位的字符串,它要求是由大小写字母、数字或者特殊字符集[._]组成。
Copy after login

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

//校验用户姓名:只能输入1-30个以字母开头的字串
/^[a-zA-Z]{1,30}$/
Copy after login

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

//校验密码:只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
\w:用于匹配字母,数字或下划线字符
Copy after login

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

//校验普通电话、传真号码:可以“+”或数字开头,可含有“-” 和 “ ”
/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
\d:用于匹配从0到9的数字;
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等
Copy after login

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

//校验URL
/^http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}$/ (表示url串的长度为length(“https://”) + n )
\ / :表示字符“/”。
. 表示所有字符的集
+ 等同于{1,},就是1到正无穷吧。
Copy after login

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

//校验纯中文字符
/^[\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>
Copy after login


# I believe you have mastered the methods after reading these cases, please come for more exciting ones Pay attention to other related articles on php Chinese website!

Related reading:

Implementation steps of using JS to operate HTTP Cookies

About local Web-storage storage Detailed introduction to

#How to set the text font color of CSS

The above is the detailed content of Regular expression implementation steps. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template