正則表達式&常用JS校驗


符號 含義
^ 以什么開頭
$ 以什么結束
* 任意個(包括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
}

  1. a-zA-Z ↩︎


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM