JavaScript之正則表達式

        正則表達式(regular expression)簡稱regex,是對字符串操做的一種邏輯公式,就是用事先定義好的一些特定字符及這些特定字符的組合,組成一個「規則字符串」,這個「規則字符串」用來表達對字符串的一種過濾邏輯。正則表達式主要用來驗證客戶端的輸入數據javascript

給定一個正則表達式和另外一個字符串,咱們能夠達到以下的目的:html

1. 給定的字符串是否符合正則表達式的過濾邏輯(稱做「匹配」);java

2. 能夠經過正則表達式,從字符串中獲取咱們想要的特定部分。正則表達式


1、建立正則表達式:express


一、new運算符

<strong><span style="font-size:18px;"><strong><span style="font-size:18px;">var box =new RegExp('box');//第一個參數字符串
var box=new RegExp('box','ig');//第二個參數可選模式修飾符</span></strong></span></strong>


二、字面量方式
數組

<strong><strong>var box=/box/;//直接用兩個反斜槓
var box=/box/ig;//在第二個斜槓後面加上模式修飾符</strong></strong>


2、測試正則表達式:


        RegExp對象包含兩個方法:test()和exec()服務器

一、test()測試

        test()方法在字符串中查找是否存在指定的正則表達式並返回布爾值,若是存在則返回true,不存在則返回false。
google

<strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><html>
<body>

<script type="text/javascript">
var box=new RegExp("e");

document.write(box.test("The best things in life are free"));
</script>

</body>
</html></span></strong></span></strong>



二、exec()

        exec()方法也用於在字符串中查找指定正則表達式,若是exec()方法執行成功,則返回包含該查找字符串的相關信息數組。若是執行失敗,則返回null。
編碼

<strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><html>
<body>

<script type="text/javascript">
var box=new RegExp("e");

document.write(box.exec("The best things in life are free"));
</script>

</body>
</html>
</span></strong></span></strong>

3、String對象中的正則表達式方法



<strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>replace/match</title>
</head>
<script language="javascript" type="text/javascript">
var str="Windows 是一個很優秀的系統,我喜歡Windows!";
alert(str);
</script>
<body>
</body>

</html></span></strong></span></strong>

一、match

<strong><span style="font-size:18px;"><strong><span style="font-size:18px;"><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>replace/match</title>
</head>
<script language="javascript" type="text/javascript">
var str="Windows 是一個很優秀的系統,我喜歡Windows!";
//定義變量reg
var reg=/Windows/g;
/*var tmp=str.replace(reg,"Linux");
alert(tmp);*/
var found=str.match(reg);
alert(found);
</script>
<body>
</body>
</html>
</span></strong></span></strong>

二、replace

<strong><strong><!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>replace/match</title>
</head>
<script language="javascript" type="text/javascript">
var str="Windows 是一個很優秀的系統,我喜歡Windows!";
//定義變量reg
var reg=/Windows/g;
var tmp=str.replace(reg,"Linux");
alert(tmp);
</script>
<body>
</body>
</html></strong></strong>


4、貪婪和惰性:

貪婪:先匹配整個字符串,而後從右往左,不匹配就捨去一個 ... 
惰性:從左往右匹配,第一個不匹配就再加第二個...  


<strong><strong>var pattern=/[a-z]+?/;/?號關閉了貪婪匹配,只替換了第一個
var str='abcdefjhijklmnopqrstuvwxyz';
var result=str.replace(pattern,'xxx');
alert(result);</strong></strong>


禁止貪婪的兩種形式:
<strong><strong>var pattern=/8(.+?)8/g;//禁止了貪婪,開啓的全局
var str='This is 8google8,That is 8google8,There is 8google8';
var result=str.replace(pattern,'<strong>$1<strong>');
document.write(result);</strong></strong>

<strong><strong>var pattern=/8([^8]*)8/g;//另外一種禁止貪婪
var str='This is 8google8,That is 8google8,There is 8google8';
var result=str.replace(pattern,'<strong>$1</strong>');
document.write(result);</strong></strong>

總結:

        經常使用到的正則表達式有檢查郵政編碼,刪除多餘空格,簡單的電子郵件驗證等等。正則表達式的靈活性、邏輯性和功能性很是的強;能夠迅速地用極簡單的方式達到字符串的複雜控制,同時能夠節約大量的服務器端的系統資源,而且提供更好的用戶體驗。
相關文章
相關標籤/搜索