JavaScript的正則表示式(Regular Expression)
技術標籤:D_JavaWeb階段D2_JavaScript正則表示式javascript
資料:正則表示式30分鐘入門教程-附常用表示式
1、什麼是正則表示式,什麼用?
正則表示式:Regular Expression
正則表示式主要用在字串格式匹配方面。
2、正則表示式實際上是一門獨立的學科,在Java語言中支援,C語言中也支援,javascript中也支援。
大部分程式語言都支援正則表示式。正則表示式最初使用在醫學方面,用來表示神經符號等。目前使用最多
的是計算機程式設計領域,用作字串格式匹配。包括搜尋方面等。
3、正則表示式,對於我們javascript程式設計來說,掌握內容
- 第一:常見的正則表示式符號要認識。
- 第二:簡單的正則表示式要會寫。
- 第三: 他人編寫的正則表示式要能看懂。
- 第四:在javascript當中,怎麼建立正則表示式物件!(new物件
- 第五:在javascript當中,正則表示式物件哪些方法!(調方法
- 第六:要能夠快速的從網路上找到自己需要的正則表示式。並且測試其有效性。
4、常見的正則表示式符號?
. 匹配除換行符以外的任意字元
\w 匹配字母或數字或下劃線或漢字
\s 匹配任意的空白符
\d 匹配數字
\b 匹配單詞的開始或結束
^ 匹配字串的開始
$ 匹配字串的結束
* 重複零次或更多次
+ 重複一次或更多次
? 重複零次或一次
{n} 重複n次
{n,} 重複n次或更多次
{n,m}
\W 匹配任意不是字母,數字,下劃線,漢字的字元
\S 匹配任意不是空白符的字元
\D 匹配任意非數字的字元
\B 匹配不是單詞開頭或結束的位置
[^x] 匹配除了x以外的任意字元
[^aeiou] 匹配除了aeiou這幾個字母以外的任意字元
正則表示式當中的小括號()優先順序較高。
[1-9] 表示1到9的任意1個數字(次數是1次。
[A-Za-z0-9] 表示A-Za-z0-9中的任意1個字元
[A-Za-z0-9-] 表示A-Z、a-z、0-9、- ,以上所字元中的任意1個字元。
| 表示或者
5、簡單的正則表示式要會寫
QQ號的正則表示式:^[1-9][0-9]{4,}$
6、他人編寫的正則表示式要能看懂
email正則:^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$
7、怎麼建立正則表示式物件,怎麼呼叫正則表示式物件的方法
第一種建立方式:
var regExp = /正則表示式/flags;
第二種建立方式:使用內建支援類RegExp
var regExp = new RegExp(“正則表示式”,“flags”);
關於flags:
- g:全域性匹配
- i:忽略大小寫
- m:多行搜尋(ES規範制定之後才支援m。當前面是正則表示式的時候,m不能用。只前面是普通字串的時候,m才可以使用。
正則表示式物件的test()方法?
- true / false = 正則表示式物件.test(使用者填寫的字串);
- true : 字串格式匹配成功
- false: 字串格式匹配失敗
加從頭到尾與不加的區別:
// 要求字串中是否包含 至少3個連續的a
var patt = /a{3,5}/;
alert(patt.test("1223aaaaaaaaalll"));
要求字串,從頭到尾都必須完全匹配
var patt = /^a{3,5}$/;
alert(patt.test("1223aaaaaaaaalll"));
8.舉例:郵箱地址是否合法
<body>
<script type="text/javascript">
window.onload = function () {
document.getElementById("btn").onclick = function(){
var email = document.getElementById("email").value;
var emailRegExp =/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
var ok = emailRegExp.test(email);
if(ok){
document.getElementById("emailError").innerText = "郵箱地址合法";
}else{
document.getElementById("emailError").innerText = "郵箱地址不合法";
}
}
// 給文字框繫結focus
document.getElementById("email").onfocus = function () {
document.getElementById("emailError").innerText = "";
}
}
</script>
<input type="text" id="email"/>
<span style=" color:red;font-size:12px" id="emailError"></span>
<br/>
<input type="button" value="驗證郵箱" id="btn"/>
</body>