簡單類:/abc/
必須是完整的,只能多不能少;即只需包含abc就可以。
- /abc/.test(str),判斷str是否包含abc,如果包含則返回true,否則就返回false;
console.log(/chaoge/.test("chaoge")); //true
console.log(/chaoge/.test("chaog")); //false
console.info(/chaoge/.test("chacoge")); //false
預定義類/[abc]/
只要包含裏面的任何一個就可以。
- /[abc].test(str)/:判斷str是否包含a、b、c三個中的一個,包含了就返回true,否則返回false。
console.info(/[abc]/.test("abcd")); //true
console.info(/[abc]/.test("abc")); //true
console.info(/[abc]/.test("a")); //true
console.info(/[abc]/.test("qqq")); //false
負向類(不能是其中的整體或者一部分)
必須是在
中括號內
,前面加個元字符^
進行取反,不是括號裏面的字符(一部分也不行)。
console.info(/[^abc]/.test('abc')); //false,是abc的整體
console.info(/[^abc]/.test('a')); //false,屬於abc的一部分
console.info(/[^abc]/.test('abcd')); //true,比abc更多
console.info(/[^abc]/.test('aw')); //true,交集
console.info(/[^abc]/.test('ww')); //true,比abc更多
- 提示:這個^寫在
[]
內才具有負向類的功能
範圍類
有時匹配的東西過多,而且類型又相同,全部輸入太麻煩,我們可以在中間加個橫線。
- 例如/a-m/表示a、b、c……m等字母只要包含一個就行。
console.info(/a-m/.test("a-m")); //true,沒有中括號,表示必須包含a-m
console.info(/a-m/.test("a-")); //false,沒有中括號,表示必須包含a-m
console.info(/[a-m]/.test("gga")); //true,只要包含一個就行
組合類
用中括號匹配不同類型的單個字符,有數字,有字幕,有特殊字符就需要使用到組合來完成。
- /[a-m1-5]/.test(“b”):表示包含q、b、c….、m和1、2….、5等
console.info(/[a-m1-5]/.test("b"));
console.info(/[a-m1-5]/.test("2"));
console.info(/[a-m1-5]/.test("oooo"));
正則邊界
^
會匹配行或者字符串的起始位置,這裏要注意的地方是^
在[]
中才表示非,這裏表示開始。
$
會匹配行或者字符串的結尾位置
^
和’$’一起使用時,則表示必須是這個(精確匹配)
- /^andy$/.test(str):要想返回true,則str必須是’andy’。
console.info(/^andy$/.test('andy')); //true
console.info(/^aandy$/.test('andy')); //false
console.info(/^andya$/.test('andy')); //false
console.info(/^anady$/.test('andy')); //false
console.info(/^ndy$/.test('andy')); //false
量詞
*
:重複零次或更多+
:重複一次或更多次?
:重複零次或一次,要麼有,要麼沒有{}
:重複多少次的意思,可以有多少個的,比如你的銀行卡密碼只能是6位,則用{6}
- {n}:n次(x=n)
- {n,}:重複n次或更多(x>=n)
- {n,m}:重複出現的次數比n多但比m少(n<=x<=m)
- *:{0,}
- +:{1,}
- ?:{0,1}
x|y:表示x或者y,注意在正則表達式中是沒有&的。
():提高權限,有限計算。
replace函數
replace()方法用於在字符串中用一些字符替換另一些字符,或替換一個與正則表達式匹配的子串。return返回的是新字符串。
☆ 需要匹配的對象.replace(正則式/匹配模式,替換的目標字符) ☆
- 正則表達式的匹配模式支持的2個標誌
- g:表示全局模式(global),即將需要匹配的對象全部尋找匹配。
- i:表示不區分大小寫(ease-insensitive)模式,在確定匹配對象時忽略大小寫查找替換。
var txt = "today is a fine day!";
console.info(txt.replace(/today/,"tomorrow")); //tomorrow is a fine day!
console.info(txt); //txt不變,today is a fine day!
var txt1 = "today is a fine day!today is a fine day!";
console.info(txt1.replace(/today/g, "tomorrot")); //tomorrot is a fine day!tomorrot is a fine day!
var txt2 = "JavaScript is a fine";
console.info(txt2.replace(/javascript/,"javascript")); //JavaScript is a fine
console.info(txt2.replace(/javascript/i,"javascript")); //javascript is a fine
封裝自己的trim函數
function trim(str) {
return str.replace(/(^\s+)|(\s+$)/g,""); // 去掉前面和後面的空格
}