1. Basic syntax for regular expressions
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$": means start and end are "ABC "The string--hehe, only" abc "himself;
" 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}$ ": Represents any three-character string (3 characters long), and
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 a string containing a lowercase ' a ' to ' d ' of one (equivalent to" a¦b¦c¦d "or" [ABCD] ");
" ^[a-za-z] ": A string that begins with a letter;
" [0-9]% " : A number that represents one digit before a percent 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 the Chinese characters can be entered:
<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 made up
of numbers/^[0-9]{1,20}$/
^ denotes the beginning of the character to match immediately after the following rule $ indicates that the beginning
of the character to match immediately preceding the rule
[] is an optional character set
[0-9] Indicates that a range of characters between 0-9
{1,20} indicates that the number 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 characters beginning with a letter, with numbers, "_", "." Can be entered. 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 characters beginning with a letter
/^[a-za-z]{1,30}$/
//Check password: Only 6-20 letters, numbers, underscores
/^ (\w) {6,20}$/
\w: Used to match letters, numbers or underscore characters
//check regular phone, fax number: can be "+" or a number beginning, 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 in the target object 0 or one time
to match the string such as: +123-999 999; +123-999 999; 123 999 999; +123 999999 etc
//check URL
/^ http[s]{0,1}:\/\/.+$/or/^http[s]{0,1}:\/\/.{ 1,n}$/(indicates that the URL string is length ("https://") + N)
\/: Represents the character "/".
represents the set of all characters
+ equals {1,}, which is 1 to infinity.
4. Regular expression application (common part)
"^\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 2 A 6-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/^ (D{2}|d{4})-((0 ([1-9]{1})) | ( 1[1|2])-(([0-2] ([1-9]{1})] | ( 3[0|1]) $///year-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}) (]?) $ "//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 Validation
Whether the checksum is all composed of numbers function isdigit (s) {var patrn=/^[0-9]{1,20}$/; if (!patrn.exec (s)) return false return True}//Verify login: can only enter 5 -20 start with a letter, with numbers, "_", "." 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: Only 1-30 characters beginning with a letter function istruename (s) {var patrn=/^[a-za-z]{1 are entered,
30}$/;
if (!patrn.exec (s)) return false return True}//Check password: Only 6-20 letters, numbers, underscore function ispasswd (s) {var patrn=/^ (\w) {6,20}$/; if (!patrn.exec (s)) return false return True}//verify normal phone, 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 mobile number: Must start with a number, except for 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=/^[^ ' ~!@#$%^&* () +=|\\\][\]\{ \}:;\ ' \,.<>/? {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 Che
CK * 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 * retu
Rns: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);} El Se {var m = thestr.substring (the1st+1,the2nd), var d = thestr.substring (0,the1st), var y = thestr.substring (the2nd+1,thes
Tr.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)) = = F
Alse) {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 * Calls:isint **********************************************************************************/function IsReal ( Thestr, Declen) {var dot1st = Thestr.indexof ('. '); var dot2nd = Thestr.lastindexof ('. '); var OK = true; if (IsEmpty (thest
R)) 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))