這是在根據(jù)后端發(fā)來路徑轉(zhuǎn)換成圖片的時候遇到的問題,所以順便補(bǔ)充字符串替換方法。
1. JS正則表達(dá)式整理(待補(bǔ)充)
字符 含意
\ 做為轉(zhuǎn)意,即通常在 \后面的字符不按原來意義解釋,如 /b/匹配字符 b,當(dāng)b前面加了反斜桿后 /\b/,轉(zhuǎn)意為匹配一個單詞的邊界。
\ 也可以對正則表達(dá)式功能字符的還原,如匹配它前面元字符0次或多次,/a*/將匹配a,aa,aaa,在后面加了\后,a\*/將只匹配 a*。
^匹配一個輸入或一行的開頭,/^a/匹配"an A",而不匹配"An a"
$匹配一個輸入或一行的結(jié)尾,/a$/匹配"An a",而不匹配"an A"
*匹配前面元字符0次或多次,/ba */將匹配b,ba,baa,baaa
+匹配前面元字符1次或多次,/ba*/將匹配ba,baa,baaa
?匹配前面元字符0次或1次,/ba*/將匹配b,ba
(x)匹配x保存x在名為$1...$9的變量中
x|y匹配x或y
{n}精確匹配n次
{n,}匹配n次以上
{n,m}匹配n-m次
[xyz]字符集(character set),匹配這個集合中的任一一個字符(或元字符)
[^xyz]不匹配這個集合中的任何一個字符
[\b]匹配一個退格符
\b匹配一個單詞的邊界
\B匹配一個單詞的非邊界
\cX這兒,X是一個控制符,/\cM/匹配Ctrl-M
\d匹配一個字?jǐn)?shù)字符,/\d/ = /[0-9]/
\D匹配一個非字?jǐn)?shù)字符,/\D/ = /[^0-9]/
\n匹配一個換行符
\r匹配一個回車符
\s匹配一個空白字符,包括\n,\r,\f,\t,\v等
\S匹配一個非空白字符,等于/[^\n\f\r\t\v]/
\t匹配一個制表符
\v匹配一個重直制表符
\w匹配一個可以組成單詞的字符(alphanumeric,這是我的意譯,含數(shù)字),包括下劃線,如[\w]匹配"$5.98"中的5,等于[a-zA-Z0-9]
\W匹配一個不可以組成單詞的字符,如[\W]匹配"$5.98"中的$,等于[^a-zA-Z0-9]。
字母數(shù)字字符 自身
\ f換頁符
\ n 換行符
\ r回車
\ t制表符
\ v垂直制表符
\ /一個 / 直接量
\ \一個 \ 直接量
\ .一個 . 直接量
\ *一個 * 直接量
\ +一個 + 直接量
\ ? 一個 ? 直接量
\ |一個 | 直接量
\ (一個 ( 直接量
\ )一個 ) 直接量
\ [一個 [ 直接量
\ ] 一個 ] 直接量
\ { 一個 { 直接量
\ } 一個 } 直接量
\ XXX由十進(jìn)制數(shù) XXX 指 定的ASCII碼字符
\ Xnn 由十六進(jìn)制數(shù) nn 指定的ASCII碼字符
\ cX控制字符^X. 例如, \cI等價于 \t, \cJ等價于 \n
3. JS常用正則表達(dá)式
網(wǎng)上搜羅,可能有誤
//校驗(yàn)是否全由數(shù)字組成
var patrn=/^[0-9]{1,20}$/;
//校驗(yàn)登錄名:只能輸入5-20個以字母開頭、可帶數(shù)字、“_”、“.”的字串
var patrn=/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/;
//校驗(yàn)用戶姓名:只能輸入1-30個以字母開頭的字串
var patrn=/^[a-zA-Z]{1,30}$/;
//校驗(yàn)密碼:只能輸入6-20個字母、數(shù)字、下劃線
var patrn=/^(w){6,20}$/;
//校驗(yàn)普通電話、傳真號碼:可以“+”開頭,除數(shù)字外,可含有“-”
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
//校驗(yàn)手機(jī)號碼:必須以數(shù)字開頭,除數(shù)字外,可含有“-”
var patrn=/^[+]{0,1}(d){1,3}[ ]?([-]?((d)|[ ]){1,12})+$/;
//校驗(yàn)郵政編碼
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
////校驗(yàn)是否IP地址
((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))
常用正則表達(dá)式合集:(
$這表示以其前面的字符結(jié)尾)
驗(yàn)證數(shù)字:^[0-9]*$
驗(yàn)證n位的數(shù)字:^\d{n}$
驗(yàn)證至少n位數(shù)字:^\d{n,}$
驗(yàn)證m-n位的數(shù)字:^\d{m,n}$
驗(yàn)證零和非零開頭的數(shù)字:^(0|[1-9][0-9]*)$
驗(yàn)證有兩位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{2})?$
驗(yàn)證有1-3位小數(shù)的正實(shí)數(shù):^[0-9]+(.[0-9]{1,3})?$
驗(yàn)證非零的正整數(shù):^\+?[1-9][0-9]*$
驗(yàn)證非零的負(fù)整數(shù):^\-[1-9][0-9]*$
驗(yàn)證非負(fù)整數(shù)(正整數(shù) + 0)^\d+$
驗(yàn)證非正整數(shù)(負(fù)整數(shù) + 0)^((-\d+)|(0+))$
驗(yàn)證長度為3的字符:^.{3}$
驗(yàn)證由26個英文字母組成的字符串:^[A-Za-z]+$
驗(yàn)證由26個大寫英文字母組成的字符串:^[A-Z]+$
驗(yàn)證由26個小寫英文字母組成的字符串:^[a-z]+$
驗(yàn)證由數(shù)字和26個英文字母組成的字符串:^[A-Za-z0-9]+$
驗(yàn)證由數(shù)字、26個英文字母或者下劃線組成的字符串:^\w+$
驗(yàn)證用戶密碼:^[a-zA-Z]\w{5,17}$ 正確格式為:以字母開頭,長度在6-18之間,只能包含字符、數(shù)字和下劃線。
驗(yàn)證是否含有 ^%&',;=?$" 等字符:[^%&',;=?$\x22]+
驗(yàn)證漢字:^[\u4e00-\u9fa5],{0,}$
驗(yàn)證Email地址:^\w+[-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
驗(yàn)證InternetURL:^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
驗(yàn)證電話號碼:^(\d3,4|\d{3,4}-)?\d{7,8}$:--正確格式為:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
驗(yàn)證身份證號(15位或18位數(shù)字):^\d{15}|\d{}18$
驗(yàn)證一年的12個月:^(0?[1-9]|1[0-2])$正確格式為:“01”-“09”和“1”“12”
驗(yàn)證一個月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正確格式為:01、09和1、31。
整數(shù):^-?\d+$
非負(fù)浮點(diǎn)數(shù)(正浮點(diǎn)數(shù) + 0):^\d+(\.\d+)?$
正浮點(diǎn)數(shù) ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮點(diǎn)數(shù)(負(fù)浮點(diǎn)數(shù) + 0)^((-\d+(\.\d+)?)|(0+(\.0+)?))$
負(fù)浮點(diǎn)數(shù) ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮點(diǎn)數(shù) ^(-?\d+)(\.\d+)?$
2. JS字符串替換 replace() 方法
replace() 方法用于在字符串中用一些字符替換另一些字符,或替換一個與正則表達(dá)式匹配的子串。
stringObject.replace(regexp/substr, replacement)
參數(shù):
regexp/substr必需。字符串 || 要替換的模式的 RegExp 對象
-
replacement必需。替換后的文本 || 生成替換文本的函數(shù)
返回值:
一個新的字符串,是用
replacement替換了 regexp 的第一次匹配或所有匹配之后得到的。
說明:
- 如果你想替換所有匹配的子串,就加上全局標(biāo)志
g,如/Microsoft/g,否則,它只替換第一個匹配子串。
- replacement 中的
$字符具有特定的含義。如果你想取出用圓括號括著的匹配子串,如果有的話,就使用$1, ..., $9屬性
使用方法:
//使用 W3School 替換字符串中的 Microsoft
str.replace(/Microsoft/, "W3School")
//使用 W3School 替換字符串中 全部 的 Microsoft 就在"/"后加上g
str.replace(/Microsoft/g, "W3School")
//$1即([0-9]*)匹配到的內(nèi)容,將表情代碼匹配后替換成指定圖片
str = str.replace(/\[em_([0-9]*)\]/g, "<img src='/images/face/$1.gif'/>");