1.判斷輸入內容是否為空
//判斷輸入內容是否為空 function IsNull(id) { var str = document.getElementById(id).value.trim(); if (str.length == 0) { return true; } else { return false; } }
2.只能輸入中文或英文
//只能輸入中文或英文 function IsChineseOrEnglish(id) { var str = document.getElementById(id).value.trim(); if (str.length != 0) { var reg = /^[A-Za-z\u4e00-\u9fa5]+$/; if (!reg.test(str)) { return false; } else { return true; } } }
3.只能輸入0或1或0-1之間的小數
//只能輸入0或1或0-1之間的小數 function IsBetweenZeroToOne(id) { var str = document.getElementById(id).value.trim(); if (str.length != 0) { var reg = /^[0-1](\.[0-9]+)?$/; if (!reg.test(str)) { return false; } else { return true; } } }
4.只能輸入大於或等於0的數,或者是小數
//只能輸入大於或等於0的數,或者是小數 function IsIntegerOrDecimal(id) { var str = document.getElementById(id).value.trim(); if (str.length != 0) { var reg = /^[1-9]\d*(\.[0-9]+)?|0(\.[0-9]+)?$/; if (!reg.test(str)) { return false; } else { return true; } } }
正則表達式
1.關於正則表達式
處理字符串時,有很多較為復雜的字符串用普通的字符串處理函數無法干凈的完成。比如說,可能需要驗證一個Email地址是否合法,為此需要查看許多不容易檢查的規則。這正是正則表達式的用武之地。正則表達式是功能強大而簡明的字符組,其中可以包含大量的邏輯,特別值得一提的是正則表達式相當簡短。
2.正則表達式的用處
測試用戶名(必須由字母數字下划線組成)
戶密碼(必須同時包含大寫小寫數字)
確認密碼
3.創建一個RegExp對象
創建RegExp對象實例的兩種方式:
(1)構造函數方式 var reg=new RegExp(“表達式”,“附加參數”);
(2)普通方式 var reg=/表達式/附加參數
附加參數是可選的,用來擴展正則表達式的含義,主要有三個參數: (1)g:全局匹配。 (2)i:用作忽略大小寫的參數。 (3)m:多行匹配。
例如:
//第一種
var reg=new RegExp("老羅","g");
//第二種
var reg1=/老羅/g;
4.正則表達式語法(perl風格)
Perl語言的正則表達式已經非常成熟,javascript直接拿來使用。
格式 /javascript/ 在字符串前后分別加一個斜杠
匹配函數
正則.exec(str) 匹配返回內容,否則返回null。 exec(str): exec方法使用RegExp對象實例創建時指定的正則表達式模式搜索字符串,並返回一個包含搜索結果的數組。
正則.test(str) 匹配返回true,否則返回false。 test(str): 該方法檢查一個字符串中是否存在創建RegExp對象實例時所指定的正則表達式模式,如果存在則返回true,否則返回false。
例如:
//exrc()方法 如果匹配成功返回搜索內容,否則 返回null
alert(reg1.exec(str));
//text()方法 如果匹配成功 返回true, 否則 返回false
alert(reg.test(str));
5.正則表達式的元素
正則表達式包括三種元素分別為:量詞、元字符和修飾符
量詞:


元字符:


修飾符:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script type="text/javascript">
//量詞
// + 匹配至少一個或多個前導字符
// var str1='phwhphhhhhhhwhhh';
// var reg1=/hw+h/g;//h和h之間至少有一個或多個w的字符
// var reg1=/ph+/g;//一個p和一個或多個h在一塊的字符
// var reg1=/wh+/g;//一個w和一個或多個h在一塊的字符
// var reg1=/h+/g;//一個或多個h在一塊的字符
// alert(str1.replace(reg1,'0'));
// * 匹配至少0個或多個前導字符
// var str2="luo";
// var reg2=/l*/g;//..u.o. 前引號后引號也算0個
// alert(str2.replace(reg2,'.'));
// var str3='phhhhhhhhp';
// var reg3=/wh*p/g;//找不到
// alert(str3.replace(reg3,'0'))
// ? 匹配至少0個或1個前導字符
// var str4='hello,wolhld';
// var reg4=/he?/g;//一個h后面跟0個或一個e
// alert(str4.replace(reg4,'0'));
// . 通配符
// var str5='zhangsanzhangsan';
//// var reg5=/./;//0hangsanzhangsan
//// var reg5=/./g;//0000000000000000
// var reg5=/zh.ng.an/;//0zhangsan
// alert(str5.replace(reg5,'0'))
// {X}匹配x個前導字符
// var str5 = "wwwhhhhaaattt";
// var reg5 = /h{3}/g;
// alert(str5.replace(reg5,"#"));
//
// var str6 = "wwwhhhhhhhaaattt";
// var reg6 = /h{3,4}/g;
// alert(str6.replace(reg6,"#"));
//
// var str7 = "wwwhhhaaattt";
// var reg7 = /h{3,}/g;
// alert(str7.replace(reg7,"#"));
//
// var str8 = "1219539627@163.com";
// var reg8 = /^\w{4,10}@163\.(com|cn)$/g;
// alert(str8.replace(reg8,"#"));
//$結尾
// var str9 = "what are you doing";
// var reg9 = /doing$/;
// alert(str9.replace(reg9,"#"));
//
// var str10 = "what";
// var reg10 = /^what$/g;//^開頭
// alert(str10.replace(reg10,"#"));
//
// var str11 = "aAbcdef";
// var reg11 = /[a-z]/g;
// alert(str11.replace(reg11,"#"));
//匹配手機號
//var cellphone = "15215212345";
//var regNum = /^1[0-9]{10}$/;
//alert(regNum.test(cellphone));
//元字符
//var str12 = "adebfc";
//var reg12 = /[^abc]/g;
//alert(str12.replace(reg12,"#"));
//var str13 = "a d ,";
//var reg13 = /\S/g;//查找非空白字符。
//alert(str13.replace(reg13,"#"));
//
//var str14 = "aaaaaa";
//var reg14 = /\B/g;//匹配非單詞邊界。
//alert(str14.replace(reg14,"#"));
//匹配郵箱
// var email = "123456@qq.com";
// var email1 = "123456df";
// var email2 = "123456asfsdf";
// var email3 = "12345sdfsdf";
// var regE = /^\w{4,16}@(qq|163|139)\.(com|cn)$/;
// alert(regE.test(email));
</script>
</body>
</html>

