關(guān)于測試代碼
本文不是使用Dreamweaver編輯,以下測試代碼可能已經(jīng)在賦值粘貼的過程做了一些調(diào)整,可能執(zhí)行失效??梢詤⒖幢疚牡膒df版本。
匹配結(jié)尾的數(shù)字
如
3SFASDF92 取出92
正則如下:/d+$/g
統(tǒng)一空格個數(shù)
字符串內(nèi)字符鍵有空格,但是空格的數(shù)量可能不一致,通過正則將空格的個數(shù)統(tǒng)一變?yōu)橐粋€。
例如:藍 色 理 想
變成:藍 色 理 想
aobert的正則:
var str=”藍 色 理 想”
var reg=/s+/g
str = str.replace(reg,” “)
document.write(str)
</script>
判斷字符串是不是由數(shù)字組成
來源:有沒有簡單的方法判斷字符串由數(shù)字組成?
這個正則比較簡單,寫了一個測試
function isDigit(str){
var reg = /^d*$/;
return reg.test(str);
}
var str = “7654321”;
document.write(isDigit(str));
var str = “test”;
document.write(isDigit(str));
</script>
電話號碼正則
:求一個驗證電話號碼的JS正則
^d{3,4}-電話號碼為7-8位的數(shù)字
d{7,8}分機號碼為3-4位的數(shù)字,非必填,但若填寫則以“-”與電話號碼相連接
(-d{3,4})?手機號碼正則表達式
正則驗證手機號,忽略前面的0,支持130-139,150-159。忽略前面0之后判斷它是11位的。
cloeft的正則:
發(fā)布的手機號碼
var sMobile = document.mobileform.mobile.value
if(!(/^1[3|4|5|8][0-9]d{4,8}$/.test(sMobile))){
alert(“不是完整的11位手機號或者正確的手機號前七位”);
document.mobileform.mobile.focus();
return false;
}
}
由于手機號碼是13任意數(shù)字9位,和15任意數(shù)字9位,所以可以用(13|15)d{9}匹配。
測試代碼如下:
return reg.test(str);
}
var reg =/^1[3|4|5|8][0-9]d{4,8}$/;
var str = ‘13889294444’;
var str2 = ‘12889293333’;
var str3 = ‘23445567’;
document.write(testReg(reg,str)+'<br />’);
document.write(testReg(reg,str2)+'<br />’);
document.write(testReg(reg,str3)+'<br />’);
使用正則表達式實現(xiàn)刪除字符串中的空格:
來源:請問js中有沒有去掉空格的函數(shù)
代碼以及測試代碼如下:
//刪除字符串兩側(cè)的空白字符。
function trim(str){
return str.replace(/^s+|s+$/g,”);
}
//刪除字符串左側(cè)的空白字符。
function ltrim(str){
return str.replace(/^s+/g,”);
}
//刪除字符串右側(cè)的空白字符。
function rtrim(str){
return str.replace(/s+$/g,”);
}
//以下為測試代碼
var trimTest = ” 123456789 “;
//前后各有一個空格。
document.write(‘length:’+trimTest.length+'<br />’);
//使用前
document.write(‘ltrim length:’+ltrim(trimTest).length+'<br />’);
//使用ltrim后
document.write(‘rtrim length:’+rtrim(trimTest).length+'<br />’);
//使用rtrim后
document.write(‘trim length:’+trim(trimTest).length+'<br />’);
//使用trim后
</script>
測試的結(jié)果如下:
length:11
ltrim length:10
rtrim length:10
trim length:9限制文本框只能輸入數(shù)字和小數(shù)點等等
來源:文本框輸入限制的問題????
只能輸入數(shù)字和小數(shù)點
只能輸入小寫的英文字母和小數(shù)點,和冒號,正反斜杠(:./)
替換小數(shù)點前內(nèi)容為指定內(nèi)容
請問 怎么把這個字符串的小數(shù)點前面的字符替換為我自定義的字符串???
例如:infomarket.php?id=197 替換為 test.php?id=197
應該可以把第一個點“.”之前的所有單詞字符替換為test就可以了。我寫的正則如下:
var str = “infomarket.php?id=197”;
var reg = /^w*/ig;
//匹配字符串開頭的任意個單詞字符
str = str.replace(reg,’test’);
document.write(str);
</script>
原帖的有點復雜,沒太看明白。
只匹配中文的正則表達式
前兩天看的《JavaScript開發(fā)王》里恰好有中文的unicode范圍,正則如下:
/[u4E00-u9FA5uf900-ufa2d]/寫了一個簡單的測試,會把所有的中文替換成“哦”。
var str = “有中文?and English.”;
var reg = /[u4E00-u9FA5uf900-ufa2d]/ig;
str = str.replace(reg,’哦’);
document.write(str);
</script>
返回字符串的中文字符個數(shù)
一般的字符長度對中文和英文都是不分別的 如JS里的length,那么如何返回字符串中中文字符的個數(shù)呢?guoshuang老師在原帖中給出了解決方案,我又沒看懂……
不過我自己也想到了一個辦法:先去掉非中文字符,再返回length屬性。函數(shù)以及測試代碼如下:
function cLength(str){
var reg = /[^u4E00-u9FA5uf900-ufa2d]/g;
//匹配非中文的正則表達式
var temp = str.replace(reg,”);
return temp.length;
}
var str = “中文123”;
document.write(str.length+'<br />’);
document.write(cLength(str));
</script>
結(jié)果:
5
2中文兩個,數(shù)字三個,正確。
下面的測試也正確。
document.write(str.length+'<br />’);
document.write(cLength(str));
正則表達式取得匹配IP地址前三段
來源:如何用正則取IP前3段
192.168.118.101,192.168.118.72, 192.168.118.1都替換成:192.168.118
只要匹配掉最后一段并且替換為空字符串就行了,正則如下:
/.d{1,3}$/匹配結(jié)尾的.n,.nn或者.nnn。
測試代碼如下:
return str.replace(reg,”)
}
var reg = /.d{1,3}$/;
var str = ‘192.168.118.101’;
var str2 = ‘192.168.118.72’;
var str3 = ‘192.168.118.1’;
document.write(replaceReg(reg,str)+'<br />’);
document.write(replaceReg(reg,str2)+'<br />’);
document.write(replaceReg(reg,str3)+'<br />’);
相似的有,這個帖子里有一個驗證IP地址的方法:求檢驗MAC地址的正則表達例子
匹配<ul>與<ul>之間的內(nèi)容
<ul>safsf<ul>safsf</ul><ul>safsf</ul></ul>
用正則可以得到 <ul>起到下個<ul> 之間的內(nèi)容。
正則如下:
首先匹配兩側(cè)的ul標簽,中間的[sS]+?可以匹配一個或者多個任意字符,一定要非貪婪,否則會匹配<ul>safsf<ul>safsf</ul><ul>。
用正則表達式獲得文件名
c:imagestupian