正則表達式以及表單驗證(正則表達式)
一、正則表達式
正則表達式是一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
常用的字符有:
普通字符:1.\n 匹配換行 2.\s 匹配任何空白字符 3.\S匹配任何非空白字符
特殊字符:1.$ 匹配輸入字符串的結尾 \$ 2.()匹配字符串裏的字表達式,匹配自身
3. *匹配前面的子表達式,0次或多次 4. + 匹配前面的子表達式 1次或多次
5. .匹配單字符 6. [] 匹配的是表達式的開始和結尾
7.? 匹配前面的子表達式0次或1次 8.\ 匹配特殊字符
9.^ 匹配輸入字符串的開始位置,除非在方括號表達式中使用,此時它表示不接受該字符集合。
10.{} 限定符 11.| 取兩個之間一個
限定符:* 0~多 + 1~多 ?0或1次
{n}匹配前面的子表達式n次 {n,} 匹配至少n次 {n,m} 最少匹配n 最多m
\d 匹配數字 \D 匹配數字
正則兩種使用方式: 字符串使用 對象使用
alert( m.match(str1)); match 返回值爲值 正常 爲null 不正常
var reg = new RegExp(str1);
alert(reg.test(m)); 正則對象 返回值爲true false
關於正則表達式多基礎例子:
- 手機號:
var str1=/^[1]{1}[3,5,7,8,9]{1}[\d]{9}$/;
var m="18716702207";
alert(m.match(str1))
- 郵箱:
var email=/^[a-zA-Z\d]+([._-]{1}[a-zA-Z\d]+)*@([a-zA-Z\d]+[.])+[a-zA-Z\d]{2,4}$/
* 0次或多次 + 1次或多次 ()匹配的是表達式內的子表達式 []匹配表達式的開始和結束 \d表示0-9
{}限定符
var m="[email protected]"
alert(m.match(email))
- 驗證純數字
var s=/^\d+$/
var m="258099s"
var reg=new RegExp(s);對象驗證
reg.test(m);
alert( reg.test(m));
- 驗證沒有數字
var s=/^\D+$/
var m="jkdjfidfidhfkjfj"
alert(m.match(s))
- 正則表達式替換字符串中的字符
var s="ajajajabmkiii"
var m= s.replace(/a/g,"m");;
alert(m)
輸出結果:mjmjmjmbmkiii
g 爲全局變量,代表在全局中找,如果沒有g,只會替換一個
- 替換空格
var s="j d u l"
var m= s.replace(/\s/g,"");
alert(m)
輸出結果:jdul
- 在字符裏面取值
var s="akdjkdd345ak"
var m=/\d+/g;
console.log(s.match(m)[0])
輸出結果:345
var s="akdjkdd345ak"
var m=/\D+/g;
console.log(s.match(m)[0])
輸出結果:akdjkdd
- 身份證驗證
s = /^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$|^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
var m = "615321200011163823";
alert(m.match(s));
二、正則表達式的表單驗證