1. 程式人生 > 其它 >JavaScript的正則表示式(Regular Expression)

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}

重複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>