| 符號 | 含義 |
|---|---|
| ^ | 以什么開頭 |
| $ | 以什么結束 |
| * | 任意個(包括0個) |
| + | 至少一個 |
| ? | 沒有或一個 |
| {a,b} | a-b個 |
| {a} | 正好a個 |
| {a,} | 至少a個 |
| | | 或 |
| . | 任意字符 |
| [] | 方括號內的任意一個字符 |
| [^a] | 不包含a |
幾種等價表達
- * 相當於 {0,}
- + 相當於 {1,}
- ? 相當於 {0,1}
- [ab] 相當於a|b;
{,a} 這種寫法是錯誤的,必須寫成{0,a}
例子:
"despair$":以"despair"結尾的字符串($置后)
**"The":**以"The"開始的字符串(置前)
"^abc$": "abc"這個唯一字符串
"kaka":表示任何包含"kaka"的字符串
** "ab*":** 一個a后面跟着零個或若干個b
"ab+":一個a后面跟着至少一個b
"ab?":一個a后面跟着零個或者一個b
"a?b+$":末尾有零個或一個a跟着至少一個b
"ab{2}":一個a跟着2個b("abb")
"ab{2,}":個a跟着至少2個b
"ab{3,5}":一個a跟着3到5個b
"ABC|OPQ":字符串里有"ABC"或者"OPQ"
"(b|cd)ef":"bef"或"cdef"
"(a|b)*c":一串只含有"a""b"的字符串,或者全部沒有,或者只有其中一個。后面跟一個"c"
"a.[0-9]":一個"a"后面跟着一個任意字符和一個數字
"^.{3}$":只有三個任意字符的字符串
"[ab]":一個字符串有一個"a"或"b"
"[a-d]":一個字符串包含小寫的'a'到'd'中的一個(相當於"a¦b¦c¦d"或者"[abcd]");
"[1]":一個以字母開頭的字符串
"[0-9]%":一個百分號前有一位的數字
",[a-zA-Z0-9]$":以一個逗號后面跟着一個字母或數字結束
"%[^a-zA-Z]%":兩個百分號中不出現字母
正則表達式限制文本框的輸入
1.只能輸入數字和英文:
<input onkeyup="value=value.replace(/[\W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text1" NAME="Text1">
2.只能輸入數字:
<input onkeyup="value=value.replace(/[^\d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))" ID="Text2" NAME="Text2">
3.只能輸入全角:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))" ID="Text3" NAME="Text3">
4.只能輸入漢字:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" ID="Text4" NAME="Text4">
JS正則表達式檢驗
校驗是否全由數字組成
function isDigit(s)
{
var patrn=/^[0-9]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
校驗登錄名:只能輸入5-20個以字母開頭、可帶數字、“_”、“.”的字串
function isRegisterUserName(s)
{
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
if (!patrn.exec(s)) return false
return true
}
校驗用戶姓名:只能輸入1-30個以字母開頭的字串
function isTrueName(s)
{
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
}
校驗密碼:只能輸入6-20個字母、數字、下划線
function isPasswd(s)
{
var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}
校驗普通電話、傳真號碼:可以“+”開頭,除數字外,可含有“-”
function isTel(s)
{
//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
校驗手機號碼:必須以數字開頭,除數字外,可含有“-”
function isMobil(s)
{
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
校驗郵政編碼
function isPostalCode(s)
{
//var patrn=/^[a-zA-Z0-9]{3,12}$/;
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}
校驗搜索關鍵字
function isSearch(s)
{
var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;\'\,.<>/?]{1}[^`~!@$%^&()+=|\\\][\]\{\}:;\'\,.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}
function isIP(s) //by zergling
{
var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
a-zA-Z ↩︎
