正則需要傳參時,必須使用new RegExp(); var re = new RegExp('\\b'+sClass+'\\b'); 量詞,轉義字元: \s : 空格\S : 非空格 \d : 數字\D : 非數字 \w : 字元(字母,數字,下劃線)\W : 非字元 \. :真正的點 \b:獨立的 ...
正則需要傳參時,必須使用new RegExp();
var re = new RegExp('\\b'+sClass+'\\b');
-------------------------------------------------------------
量詞,轉義字元:
\s : 空格
\S : 非空格
\d : 數字
\D : 非數字
\w : 字元(字母,數字,下劃線)
\W : 非字元
\. :真正的點
\b:獨立的部分 (起始,結束,空格)
\B:非獨立的部分
^ :放在正則前邊,代表起始
$ :代表結束
/^[1-9]\d{4,11}$/ //QQ號檢測
+ :至少出現一次;
| :或
^ :非 [在中括弧裡邊是非的意思]
. :任意字元
{}:
{4,7}:最少4次,最多7次
{4,}:最少4次,最多不限
{4}:正好4次
+:{1,} 即至少出現1次
?:{0,1} 即出現0次或1次
*:{0,} 即至少出現0次
-------------------------------------------------------------
標識:不區分大小寫 i 全局匹配 g
正則預設區分大小寫,
如果不區分大小寫,在正則最後加標識 i ;
正則匹配成功就會結束,不會繼續匹配,
如果要全部查找,在正則最後加標識 g ;(全局匹配)
-------------------------------------------------------------
四種常用方法test search match replace
1,正則.test(字元串) [匹配成功:返回true,失敗:返回false]
2,字元串.search(正則) [匹配成功:返回位置,失敗:返回-1]
3,字元串.match(正則) [匹配成功:返回匹配成功的數組,失敗:返回null]
4,字元串.replace(正則,第二個參數)
replace第二個參數可以是[字元串],
也可以是[回調函數],函數的第一個參數就是匹配成功的字元,
字元串.replace(正則,function($0,$1,$2){})
-------------------------------------------------------------
匹配子項 : 小括弧()
[分組操作]
字元串.replace(正則,function($0,$1,$2){})
$0:母親;(整體)
$1:第一個孩子;(第一個小括弧)
$2:第二個孩子;(第二個小括弧)
var str = 'abc';
var re= /(a)(b)(c)/;
str.match(re); 返回[abc,a,b,c]
match只有不加g(全局匹配)才能獲得子項
-------------------------------------------------------------
// 字元類:一組相似的元素
// []中括弧的整體代表一個字元
var str='abc';
var re=/a[bde]c/;
alert(re.test(str)); 返回true
var str='abdc';
var re=/a[bde]c/;
alert(re.test(str)); 返回false
var str='abc';
var re=/a[a-z0-9A-Z]c/;
alert(re.test(str));
-------------------------------------------------------------
\b:獨立的部分 (起始,結束,空格)
var str='onetwo';
// var re= /\bone/; //true
var re= /one\b/; //false
alert(re.test(str));
-------------------------------------------------------------
重覆子項
// \1 :重覆的第一個子項
// \2 :重覆的第二個子項
var str = 'abca';
var re = /(a)(b)(c)\1/; //true
// var re = /(a)(b)(c)\2/; //false
alert(re.test(str));
// var re = /\w\w/; //c9
// var re = /(\w)\1/; //cc 99
-------------------------------------------------------------
找出出現次數最多的字元和次數
var str='ahlihkhkjsssssssssssssdasdasdasdasdsdafafqrghjff';
var arr = str.split(''); //分割成數組
str=arr.sort().join('');//數組連成字元串
var re=/(\w)\1+/g;
var index=0;
var value='';
str.replace(re,function ($0,$1) {
if (index<$0.length) {
index=$0.length;
value=$1;
}
})
-------------------------------------------------------------
匹配中文:[\u4e00-\u9fa5]
行首行尾空格:^\s*|\s*$
Email:^\w+@[a-z0-9]+(\.[a-z]+){1,3}$
網址:[a-zA-z]+://[^\s]*
QQ號:^[1-9][0-9]{4,9}$
郵政編碼:[1-9]\d{5}
身份證:[1-9]\d{14}|[1-9]\d{17}|[1-9]\d{16}x