正則表達式:
1、什麼是RegExp?RegExp是正則表達式的縮寫。RegExp 對象用於規定在文本中檢索的內容。
2、定義RegExp:var +變量名=new RegExp();
3、RegExp 對象有 3 個方法:
1)test()檢索字符串中的指定值,返回值是true或false.
復制代碼 代碼如下:
var p1=new Reg("e");
document.write(Reg.test("welcome to China!"));
2)exec()
復制代碼 代碼如下:
var p1=new Reg("e");
document.write(Reg.exec("welcome to China!"));
3) compile()
復制代碼 代碼如下:
var p1=new Reg("e");
document.write(Reg.compile("welcome to China!"));
4、修飾符
1)i 執行對大小寫不敏感的匹配
2)g 執行全局匹配
3)m 執行多行匹配
5、方括號(用於查找某個范圍內的字符)
1)[abc] 查找方括號之間的任何字符
2)[^abc] 查找任何不在方括號之間的字符
3)[0-9] 查找任何0-9之間的數字
4)[a-z] 查找任何小寫a-z之間的字符
5)[A-Z]查找任何大寫A-Z之間的字符
6)[A-z] 查找任何大寫A-小寫z之間的字符
7)[adgk] 查找給定集合內的任何字符
8)[^adgk]查找給定集合外的任何字符
9)(red|biue|green)查找任何給定的選項
6、元字符
1)\w:查找單詞字符
2)\W:查找非單詞字符
3)\d:查找數字
4)\D:查找非數字字符
7、 量詞
n+匹配任何包含至少一個 n 的字符串。
n*匹配任何包含零個或多個 n 的字符串。
n?匹配任何包含零個或一個 n 的字符串。
n{X}匹配包含 X 個 n 的序列的字符串。
n{X,Y}匹配包含 X 或 Y 個 n 的序列的字符串。
n{X,}匹配包含至少 X 個 n 的序列的字符串。
n$匹配任何結尾為 n 的字符串。
^n匹配任何開頭為 n 的字符串。
?=n匹配任何其後緊接指定字符串 n 的字符串。
?!n匹配任何其後沒有緊接指定字符串 n 的字符串。
【練習題1】判斷輸入身份證格式是否正確
復制代碼 代碼如下:
<body>
<label>請輸入身份證號:</label>
<input name="" type="text" id="shenfen"/>
<input name="" type="submit" id="textfi" value="提交1" onclick="test()"/><!--提交按鈕,觸發函數-->
</body>
</html>
<!--判斷身份證是否輸入正確-->
<script>
function test()
{
var reg=new RegExp(/^[0-9]{17}[0-9|X]$/);<!--正則表達式的格式:以/^開頭,以$/結尾,數字、字母范圍用中括號-->
var text=document.getElementById("shenfen").value;<!--輸入文本框的字符串的id跟文本框的id對應-->
//判斷地區是否合法(用if...else)
if(reg.test(text))
{
alert("輸入正確")
}
else
{
alert("輸入錯誤");
}
}
</script>
效果圖:
【練習題2】判斷輸入的郵箱格式是否正確
復制代碼 代碼如下:
<body>
<label>請輸入您的郵箱:</label>
<input name="" type="text" id="youxiang"/>
<input name="" type="submit" value="提交2" onclick="y()" />
</body>
</html>
<script>
function y()
{
var yx=new RegExp(/^[0-9|A-z|_]{1,17}@[A-z|0-9]{1,5}.(com|cn|net|org|cc)$/);
var shuru=document.getElementById("youxiang").value; <!--定義變量,調用的是整個function,,必須把變量寫在function內-->
if(yx.test(shuru))<!--test正則表達式的方法-->
{
alert("zhengque");
}
else
{
alert("cuowu");
}
}
</script>
效果圖:
相對來說,js中正則表達式是一個很重要的點,很多地方都需要配合正則才行,所以小伙伴一定要學好這塊內容。