JavaScript_正則表達式
【規則】
開頭結尾
"^The":表示所有以"The"開始的字符串("There","The cat"等);
"of despair$":表示所以以"of despair"結尾的字符串;
重復
"ab*":表示一個字符串有一個a后面跟著零個或若干個b。("a", "ab", "abbb",……);
"ab+":表示一個字符串有一個a后面跟著至少一個b或者更多;
"ab?":表示一個字符串有一個a后面跟著零個或者一個b;
"a?b+$":表示在字符串的末尾有零個或一個a跟著一個或幾個b。
"ab{2}":表示一個字符串有一個a跟著2個b("abb");
"ab{2,}":表示一個字符串有一個a跟著至少2個b;
"ab{3,5}":表示一個字符串有一個a跟著3到5個b。
"(b|cd)ef":表示"bef"或"cdef";
"^.{3}$":表示有任意三個字符的字符串(長度為3個字符)
"[ab]":表示一個字符串有一個"a"或"b"(相當于"a|b");
"[a-d]":表示一個字符串包含小寫的'a'到'd'中的一個(相當于"a|b|c|d"或者"[abcd]");
"^[a-zA-Z]":表示一個以字母開頭的字符串;
"[0-9]%":表示一個百分號前有一位的數字;
邊界
^ 行開頭
$ 行結尾
\b 單詞的邊界
\B 非單詞的邊界
————————————————————————————————————————————————————————————
【注意點】
■ "^.$()|*+?{\" 這些字符前加上轉義字符'\'。
————————————————————————————————————————————————————————————
【使用示例】
● 初始化
var reCat = new RegExp("cat");
var reCat = /cat/;//Perl 風格(推薦)
● 分割金額
var re = new RegExp("(\\d)(\\d{3})(,|\\.|$)");
m = m.replace(re, "$1,$2$3");
● test 檢查指定的字符串是否存在
var data = "123123";
var reCat = /123/gi;
alert(reCat.test(data)); //true
//檢查字符是否存在 g 繼續往下走 i 不區分大小寫
● exec 返回查詢值
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/i;
alert(reCat.exec(data)); //Cat
● match 得到查詢數組
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
var arrMactches = data.match(reCat)
for (var i=0;i < arrMactches.length ; i++)
{
alert(arrMactches[i]); //Cat cat
}
● search 返回搜索位置 類似于indexof
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.search(reCat)); //23
● replace 替換字符 利用正則替換
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /cat/gi;
alert(data.replace(reCat,"libinqq"));
● split 利用正則分割數組
var data = "123123,213,12312,312,3,Cat,cat,dsfsdfs,";
var reCat = /\,/;
var arrdata = data.split(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
● var reCat = /(mouse){2}/gi; //mousemouse
● 選取子串
var sToMatch = "#123456789";
var reNumbers = /#(\d+)/;
reNumbers.test(sToMatch);
alert(RegExp.$1); //(反向引用)
● 交換子串
var sToChange = "1234 5678";
var reMatch = /(\d{4}) (\d{4})/;
var sNew = sToChange.replace(reMatch,"$2 $1");
alert(sNew);
● 多行模式
var data = " First second\n thind fourth\n fifth sixth";
var reCat = /(\w+)$/gm;
var arrdata = data.match(reCat);
for (var i = 0; i < arrdata.length; i++)
{
alert(arrdata[i]);
}
————————————————————————————————————————————————————————————
■ JavaScript replace() 方法
● 去除字符串前后空格
replace(/(^\s*)|(\s*$)/g, "");
● jQuery trim()內部實現
str.replace(/^(\s|\u00A0)+/,'').replace(/(\s|\u00A0)+$/,'');
● 兼容不支持trim()的瀏覽器
if (!String.prototype.trim){
String.prototype.trim = function () {
return this.replace(/(^[\s\n\t]+|[\s\n\t]+$)/g, "");
}
}
————————————————————————————————————————————————————————————

浙公網安備 33010602011771號