Regular Expressions basic use (GO)

Source: Internet
Author: User
Tags valid email address

1. Regular expression basic syntax

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

"^the": denotes all strings starting with "the" ("There", "the Cat", etc.); "Of despair$": the string that ends with "of despair"; "^abc$": a string that means "abc" at the Beginning and end--Oh, Only "ABC" itself; "notice": represents any string that contains "notice".

Like the last example, if you don't use two special characters, you're just saying that the string you're looking for is in any part of the string you're looking for-you don't position it at a certain top.

Others have ' * ', ' + ' and '? ' These three symbols represent the number of occurrences of a character or sequence of characters. They mean "no or more", "one or more" and "no or one more". Here are a few examples:

"ab*": Indicates that a string has an a followed by 0 or several B. ("A", "AB", "ABBB",...... "ab+": Indicates that a string has an a followed by at least one B or more; "Ab?" : Indicates that a string has a followed by 0 or a B; "a?b+$": indicates that there are 0 or one a followed by one or several B at the end of the string.

You can also use ranges, enclosed in curly braces, to indicate the range of repetitions.

"Ab{2}": Indicates that a string has a followed by 2 B ("ABB"); "Ab{2,}": Indicates that a string has a followed by at least 2 B; "ab{3,5}": A string that has a followed by 3 to 5 B.

Note that you must specify the lower bound of the range (for example: "{0,2}" instead of "{, 2}"). And, you may have noticed, ' * ', ' + ' and '? ' Equivalent to "{0,}", "{1,}" and "{0,1}". There is also a ' ¦ ', which means "or" action:

"Hi¦hello": Indicates a string with "hi" or "Hello", "(B¦CD) EF": "bef" or "cdef"; "(a¦b) *c": A String "a" "B" followed by a "C";

‘.‘ Can replace any character:

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

Square brackets indicate that certain characters allow a particular position in a string to appear:

"[AB]": Indicates that a string has a "a" or "B" (equivalent to "a¦b"); "[A-d]": Indicates that a string contains one of the lowercase ' a ' to ' d ' (equivalent to "a¦b¦c¦d" or "[ABCD]"); "^[a-za-z]" : Represents a string beginning with a letter, "[0-9]%": A number preceded by a semicolon; ", [a-za-z0-9]$": Indicates that a string ends with a comma followed by a letter or a number.)

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

In order to express it verbatim, you must be in "^.$ () ¦*+?" {\ ' These characters are preceded by the transfer character ' \ '.

Note that in square brackets, you do not need to escape characters.

2. Regular expression validation controls the input character type of the text box 1. Enter only numbers and English: <input onkeyup= "Value=value.replace (/[\w]/g,") "onbeforepaste=" Clipboarddata.setdata (' Text ', Clipboarddata.getdata (' text '). Replace (/[^\d]/g, ') "id=" Text1 "name=" Text1 ">


2. Only numbers can be entered: <input onkeyup= "Value=value.replace (/[^\d]/g,") "Onbeforepaste=" Clipboarddata.setdata (' text ', Clipboarddata.getdata (' text '). Replace (/[^\d]/g, ') "id=" Text2 "name=" Text2 ">
3. Only full-width input: <input onkeyup= "Value=value.replace (/[^\uff00-\uffff]/g, ')" onbeforepaste= "Clipboarddata.setdata (' Text ', Clipboarddata.getdata (' text '). Replace (/[^\uff00-\uffff]/g, ') "id=" Text3 "name=" Text3 ">
4. Only input Chinese characters: <input onkeyup= "Value=value.replace (/[^\u4e00-\u9fa5]/g,") "Onbeforepaste=" Clipboarddata.setdata (' Text ', Clipboarddata.getdata (' text '). Replace (/[^\u4e00-\u9fa5]/g, ') "id=" Text4 "name=" TEXT4 ">


3. Application examples of regular expressions popular description

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

Whether the checksum is all made up of numbers

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

^ indicates that the beginning character matches the rule immediately following the ^

$ indicates the first character to match the rule immediately preceding the $

The content in [] is an optional character set

[0-9] indicates a range of characters is required between 0-9

{1,20} indicates that the numeric string length is valid from 1 to 20, that is, the number of occurrences of the character in [0-9] is 1 to 20 times.

/^ and $/should be used to represent a rule that requires an exact match to be defined for the entire string, rather than just one substring in the string.

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

Check login name: Only 5-20 entries begin with a letter, can be numbered, "_", "." The string

/^[a-za-z]{1} ([a-za-z0-9]|[. _]) {4,19}$/

^[a-za-z]{1} indicates that the first character requirement is a letter.

([a-za-z0-9]| [._]) {4,19} represents a string from 4 to 9 bits in length starting from the second bit (since it immediately follows the previous expression), and it is required to consist of uppercase and lowercase letters, numbers, or special character set [. _].

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

Verify user name: Only 1-30 strings beginning with a letter can be entered

/^[a-za-z]{1,30}$/

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

Check password: Only 6-20 letters, numbers, underscores can be entered

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

\w: Used to match letters, numbers, or underscore characters

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

Verify the regular phone, fax number: can be "+" or the beginning of the number, can contain "-" and ""

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

\d: Used to match numbers from 0 to 9;

“?” Metacharacters stipulate that their leading objects must appear consecutively 0 or one time in the target object

Can match the string such as: +123-999 999; +123-999 999; 123 999 999; +123 999999 etc.

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

Verifying URLs

/^http[s]{0,1}:\/\/.+$/or/^http[s]{0,1}:\/\/.{ 1,n}$/(indicates the length of the URL string ("https://") + N)

\/: Denotes the character "/".

. Represents the set of all characters

+ equals {1,}, 1 to infinity.

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

Verifying Pure Chinese characters

/^[\u4e00-\u9fa5]+$/

[\U4E00-\U9FA5]: estimated to be the range of Chinese character set

The above expressions are tested in the following JavaScript

<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>

Rule expression: <input type= "input" name= "Regxstr" value= "" > (fill in//Expression)

<br>

Checksum string: <input type= "input" name= "str" value= "" >

<input type= "button" name= "Match" value= "match" onclick= "alert (REGX (Regxstr.value,str.value));" >

</form>

</body>


4. The regular form of the use

"^\d+$"//nonnegative integer (positive integer + 0) "^[0-9]*[1-9][0-9]*$"//Positive integer "^ ((-\d+) | ( 0+) $ "//non-positive integer (negative integer + 0)" ^-[0-9]*[1-9][0-9]*$ "//Negative integer" ^-?\d+$ "//Integer" ^\d+ (\.\d+)? $ "//non-negative floating-point number (positive floating-point number + 0)" ^ ([0-9]+\.[ 0-9]*[1-9][0-9]*) | ([0-9]*[1-9][0-9]*\. [0-9]+) | ([0-9]*[1-9][0-9]*)) $ "//positive floating point" ^ ((-\d+ (\.\d+)?) | (0+ (\.0+)?)) $ "//non-positive floating point number (negative floating point + 0)" ^ (-([0-9]+\.[ 0-9]*[1-9][0-9]*) | ([0-9]*[1-9][0-9]*\. [0-9]+) | ([0-9]*[1-9][0-9]*))) $ "//negative floating point" ^ (-?\d+) (\.\d+) $ "//floating-point" ^[a-za-z]+$ "///the string consisting of 26 English letters" ^[a-z]+$ "//A string consisting of 26 letters in uppercase" ^[a-z]+$ "//by 26 English The lowercase character of the letter "^[a-za-z0-9]+$"//A string consisting of a number and 26 English letters "^\w+$"//A string consisting of a number, 26 letters or an underscore "^[\w-]+ (\.[ \w-]+) *@[\w-]+ (\.[ \w-]+) +$ "//email address" ^[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]) $/  // -month-day/^ ((0 ([1-9]{1})) | ( 1[1|2])/([0-2] ([1-9]{1})) | ( 3[0|1])/(d{2}|d{4}) $/  //month/day/year "^ ([w.] +) @ ([[[0-9]{1,3}. [0-9] {1,3}. [0-9] {1,3}.) | ([w-]+.) +)) ([a-za-z]{2,4}| [0-9] {1,3}) (]?) $ "&NBsp; //emil "(d+-)? (d{4}-?d{7}|d{3}-?d{8}|^d{7,8}) (-d+)? "     //Phone number "^ (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 Address

^ ([0-9a-f]{2}) (-[0-9a-f]{2}) {5}$//mac address regular expression ^[-+]?\d+ (\.\d+)? $//value-type regular expression


5.javascript Regular expression check/checksum is all composed of numbers function isdigit (s) {var patrn=/^[0-9]{1,20}$/; if (!patrn.exec (s)) return false return True}

Check login name: Only 5-20 entries begin with a letter, can be numbered, "_", "." The string function Isregisterusername (s) {var patrn=/^[a-za-z]{1} ([a-za-z0-9]|[. _]) {4,19}$/; if (!patrn.exec (s)) return false return True}

Verify user name: You can only enter 1-30 characters beginning with the letter function Istruename (s) {var patrn=/^[a-za-z]{1,30}$/; if (!patrn.exec (s)) return false return true}

Check Password: can only enter 6-20 letters, numbers, underscore function ispasswd (s) {var patrn=/^ (\w) {6,20}$/; if (!patrn.exec (s)) return false return True}

Check the ordinary telephone, fax number: Can "+" start, in addition to the number, can contain "-" 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}

Check phone number: Must start with a number, except the number, can contain "-" function Ismobil (s) {var patrn=/^[+]{0,1} (\d) {1,3}[]? ( [-]? ((\d) | []) {1,12}) +$/; if (!patrn.exec (s)) return false return True}

Check zip code 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}

Verify search keyword function Issearch (s) {var patrn=/^[^ ' [email protected]#$%^&* () +=|\\\][\]\{\}:;\ ' \,.<>/?] {1} [^ ' [email protected]$%^& () +=|\\\] [\]\{\}:;\ ' \,.<>?] {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,the2 nd); 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,)) {return (false);} else if (m==4 | | m==6 | | m==9 | | m==11) maxdays = 30; else if (m==2) {if (y% 4 > 0) maxdays =; else if (y% = = 0 && y% > 0) maxdays =; else maxda ys = 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,) = = 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,the1 ST); 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,) = = False) {return (false);} else if (m==4 | | m==6 | | m==9 | | m==11) maxdays = 30; else if (m==2) {if (y% 4 > 0) maxdays =; else if (y% = = 0 && y% > 0) maxdays =; else maxda ys = 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 Lessdate<moredate ************** /function Iscomdate (lessdate, moredate) {if (! IsDate (lessdate)) {return (false),} if (!isdate (moredate)) {return (false);} var less1st = Lessdate.indexof ('-'); var less2nd = lessdate.lastindexof ('-'); var more1st = moredate.indexof ('-'); var more2nd = moredate.lastindexof ('-'); var Lessy = lessdate.substring (0,less1st); var LESSM = lessdate.substring (less1st+1,less2nd); var LESSD = lessdate.substring (less2nd+1,lessdate.length); var morey = moredate.substring (0,more1st); var morem = moredate.substring (more1st+1,more2nd); var mored = moredate.substring (more2nd+1,moredate.length); var Date1 = new Date (LESSY,LESSM,LESSD); var Date2 = new Date (morey,morem,mored); if (Date1>date2) {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<thestr.length; i++) {if (IsDigit (thestr.substring)) = = False) {flag = false; break;}} } return (flag); }

/********************************************************************************* * Function:isreal * PARAMETER: Hestr as String Declen as Integer (how many digits after period) * Returns:true if Thestr is a float, otherwise FALSE * C Alls:isint **********************************************************************************/function IsReal ( Thestr, Declen) {var dot1st = Thestr.indexof ('. '); var dot2nd = Thestr.lastindexof ('. '); var OK = true;

if (IsEmpty (THESTR)) return false;

if (dot1st = =-1) {if (!isint (THESTR)) return (false), else return (true);

else if (dot1st! = dot2nd) return (false); else if (dot1st==0) return (false); else {var Intpart = thestr.substring (0, dot1st); var decpart = thestr.substring (dot2nd+1);

if (Decpart.length > 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 e-mail address * FALSE If the passed string is n OT a valid email Address * Email FORMAT: [email protected] e.g; [email protected] * 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 W Indow bars-1-scroll bars = yes 0-scroll bars = no resize-1-resizable = YES 0-resizable = no * calls:none * RE Turns:new Window Instance **********************************************************************************/ function NewWindow (doc, Hite, wide, bars, resize) {var winnew= "_blank"; var opt= "Toolbar=0,location=0,directories=0,sta Tus=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 str ing **********************************************************************************/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+$"//nonnegative integer (positive integer + 0) "^[0-9]*[1-9][0-9]*$"//Positive integer "^ ((-\\d+) | ( 0+) $ "//non-positive integer (negative integer + 0)" ^-[0-9]*[1-9][0-9]*$ "//Negative integer" ^-?\\d+$ "//Integer" ^\\d+ (\\.\\d+)? $ "//non-negative floating-point number (positive floating-point number + 0)" ^ ([0-9]+\ \. [0-9]*[1-9][0-9]*) | ([0-9]*[1-9][0-9]*\\. [0-9]+) | ([0-9]*[1-9][0-9]*)) $ "//positive floating point" ^ ((-\\d+ (\\.\\d+)?) | (0+ (\\.0+)?)) $ "//non-positive floating point number (negative floating point + 0)" ^ (-([0-9]+\\.[ 0-9]*[1-9][0-9]*) | ([0-9]*[1-9][0-9]*\\. [0-9]+) | ([0-9]*[1-9][0-9]*))) $ "//negative floating point" ^ (-?\\d+) (\\.\\d+) $ "//floating-point" ^[a-za-z]+$ "///the string consisting of 26 English letters" ^[a-z]+$ "//A string consisting of 26 letters in uppercase" ^[a-z]+$ "//by 26 An English letter lowercase string "^[a-za-z0-9]+$"//A string consisting of a number and 26 English letters "^\\w+$"//A string consisting of numbers, 26 letters or underscores "^[\\w-]+ (\\.[ \\w-]+) *@[\\w-]+ (\\.[ \\w-]+) +$ "//email address" ^[a-za-z]+://(\\w+ (-\\w+) *) (\ \. ( \\w+ (-\\w+) *) * (\\?\\s*)? $ "//url

Enclose the contents in parentheses: \ ". *?\" \ (. *?\) \{.*?\} \[.*?\]

Regular Expressions basic use (GO)

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.