目錄:
- 1、精準匹配
- 2、字符匹配
- 3、參考示例
- 3.1、一個合理的用戶名正則表達式
- 3.2、匹配 HTML 標簽及內容
- 3.3、其他示例
- 3.4、微信號正則表達式
- 3.5、QQ號正則表達式
- 3.6、車牌號號正則表達式
- 3.7、郵箱正則表達式
1、精準匹配
單字符模式,如 a,不論出現在搜索字符串中的何處,它總是匹配字母 a,下面是一些單字符正則表達式模式的示例:
/a/
/b/
/c/
正則表達式將精確匹配字符串 “abc”,無論該字符串出現在文本中的哪個位置,只有當它與 “abc” 完全匹配時才會成功
/abc/
2、字符匹配
通配符 :
點號 . 匹配任意單個字符,除了換行符 \n 和 \r。下面的正則表達式匹配 aac、abc、acc、adc 等等,以及 a1c、a2c、a-c 和 a#c:
/a.c/
若要匹配包含文件名的字符串,而句點 . 是輸入字符串的組成部分,請在正則表達式中的句點前面加反斜杠 \ 字符。舉例來說明,下面的正則表達式匹配 filename.ext:
/filename\.ext/
量詞:*
匹配前面的元素零次或多次:
/a*b/
這個表達式可以匹配 “b”、“ab”、“aab”、“aaab” 等字符串。
量詞 +
匹配前面的元素一次或多次:
/a+b/
這個表達式可以匹配 “ab”、“aab”、“aaab” 等字符串,但不匹配 “b”。
量詞 ?
匹配前面的元素零次或一次:
/colou?r/
這個表達式可以匹配 “color” 或 “colour”。
3、參考示例
3.1、一個合理的用戶名正則表達式
var str = "abc123-_def";
var patt = /[a-zA-Z0-9_-]+/;
document.write(str.match(patt));
3.2、匹配 HTML 標簽及內容
以下正則表達式用于匹配 iframe 標簽:
/<iframe(([\s\S])*?)<\/iframe>/
其他標簽的匹配可以替換 iframe 。
匹配 id=“mydiv” 的 div 標簽:
/<div id="mydiv"(([\s\S])*?)<\/div>/
匹配所有 img 標簽:
/<img.*?src="(.*?)".*?\/?>/gi
3.3、其他示例
3.4、微信號正則表達式
//微信號正則,6至20位,以字母開頭,字母,數字,減號,下劃線
var wxPattern = /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/;
//輸出 true
document.write(wxPattern.test("runoob123"));
3.5、QQ號正則表達式
//QQ號正則,5至11位
var qqPattern = /^[1-9][0-9]{4,10}$/;
//輸出 true
document.write(qqPattern.test("65974040"));
3.6、車牌號號正則表達式
//車牌號正則
var cPattern = /^[京津滬渝冀豫云遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陜吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;
//輸出 true
document.write(cPattern.test("京K39006"));
3.7、郵箱正則表達式
const validateEmail = (email) => {return email.match(/^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/);
};const validate = () => {const $result = $('#result');const email = $('#email').val();$result.text('');if (validateEmail(email)) {$result.text(email + ' 是一個正確的郵箱地址 :)');$result.css('color', 'green');} else {$result.text(email + ' 不是一個郵箱地址 :(');$result.css('color', 'red');}return false;
}$('#email').on('input', validate);