前言
正則表達式是我們經常要用到的檢驗字符串的是否合法的一個技術點,正則表達式(regular expression)描述了一種字符串匹配的模式(pattern),可以用來檢查一個串是否含有某種子串、將匹配的子串替換或者從某個串中取出符合某個條件的子串等。
正文
構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字符與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字符、字符集合、字符範圍、字符間的選擇或者所有這些組件的任意組合。
正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱爲"元字符")組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作爲一個模板,將某個字符模式與所搜索的字符串進行匹配。
//應用舉例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script type="text/javascript" >
/*
* 技術要求: 當用戶點擊了驗證是否合法按鈕,要提示輸入的內容是否合法
* 驗證合法性的規則是: 必須由字母, 數字。 下劃線組成。 並且長度是 5 到 12 位。
* */
function onclickFun() {
// 先獲取這個標籤對象。
var usernameObj = document.getElementById("username");
var usernameText = usernameObj.value;
// 驗證 字符串, 符合某個規則
var patt = /^\w{5,12}$/;
/*
* test()方法用於測試某個字符串, 是不是匹配我的規則 ,
* 匹配就返回 true。 不匹配就返回 false.
* */
var usernameSpanObj = document.getElementById("usernameSpan");
if (patt.test(usernameText)) {
alert("用戶名合法! ");
} else {
alert("用戶名不合法! ");
}
}
</script>
</head>
<body>
用戶名: <input type="text" id="username" value="wzg"/>
<span id="usernameSpan" style="color:red;">
</span>
<button onclick="onclickFun()">驗證是否合法</button></body>
</html>
以下是常用的正則表達式
要求 | 正則表達式 |
---|---|
只能輸入數字 | ^[0-9]*$ |
整數或者小數 | ^[0-9]+.{0,1}[0-9]{0,2}$ |
只能輸入n位的數字 | ^\d{n,}$ |
只能輸入至少n位的數字 | ^\d{n,}$ |
只能輸入m~n位的數字 | ^\d{m,n}$ |
只能輸入零和非零開頭的數字 | ^(0|[1-9][0-9]*)$ |
只能輸入有兩位小數的正實數 | ^[0-9]+(.[0-9]{2})?$ |
只能輸入有1~3位小數的正實數 | ^[0-9]+(.[0-9]{1,3})?$ |
只能輸入非零的正整數 | ^+?[1-9][0-9]*$ |
只能輸入由26個英文字母組成的字符串 | ^[A-Za-z]+$ |
只能輸入由26個大寫英文字母組成的字符串 | ^[A-Z]+$ |
只能輸入由26個小寫英文字母組成的字符串 | ^[a-z]+$ |
只能輸入由數字和26個英文字母組成的字符串 | ^[A-Za-z0-9]+$ |
只能輸入由數字、26個英文字母或者下劃線組成的字符串 | ^\w+$ |
只能輸入漢字 | ^[\u4e00-\u9fa5]{0,}$ |
驗證Email地址 | ^\w+([-+.]\w+)@\w+([-.]\w+).\w+([-.]\w+)*$ |
驗證InternetURL | ^http://([\w-]+.)+[\w-]+(/[\w-./?%&=]*)?$ |
驗證電話號碼 | ^((\d{3,4}-) |
正確格式爲 | XXX-XXXXXXX |
驗證身份證號(15位或18位數字) | ^\d{15}|\d{18}$ |
驗證一年的12個月 | ^(0?[1-9]|1[0-2])$ |
驗證一個月的31天 | ^((0?[1-9])|((1|2)[0-9])|30|31)$ |
匹配html標籤 | <(.*)>(.*)<\/(.)>|<(.)\/> |
^[1-9]\d{4,8}$ | |
國際通用的電話號碼 | ^(1[0-2]\d|\d{1,2})$ |
結束
根據以上的常用表達式可以根據自己的需要去更改適合自己項目的新的表達式。