js正则匹配
【转】js正则匹配
- 一些常用的正则表达式
- "^/d+$" //非负整数(正整数 + 0)
- "^[0-9]*[1-9][0-9]*$" //正整数
- "^((-/d+)|(0+))$" //非正整数(负整数 + 0)
- "^-[0-9]*[1-9][0-9]*$" //负整数
- "^-?/d+$" //整数
- "^/d+(/./d+)?$" //非负浮点数(正浮点数 + 0)
- "^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$" //正浮点数
- "^((-/d+(/./d+)?)|(0+(/.0+)?))$" //非正浮点数(负浮点数 + 0)
- "^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$" //负浮
- 点数
- "^(-?/d+)(/./d+)?$" //浮点数
- "^[A-Za-z]+$" //由26个英文字母组成的字符串
- "^[A-Z]+$" //由26个英文字母的大写组成的字符串
- "^[a-z]+$" //由26个英文字母的小写组成的字符串
- "^[A-Za-z0-9]+$" //由数字和26个英文字母组成的字符串
- "^/w+$" //由数字、26个英文字母或者下划线组成的字符串
- "^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$" //email地址
- "^[a-zA-z]+://(/w+(-/w+)*)(/.(/w+(-/w+)*))*(/?/S*)?$" //url
- /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/ // 年-月-日
- /^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 月/日/年
- "^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$"
- //Emil
- "(d+-)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d+)?" //电话号码
- "^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d
- {1,2}|1dd|2[0-4]d|25[0-5])$" //IP地址
- 匹配中文字符的正则表达式: [/u4e00-/u9fa5]
- 匹配双字节字符(包括汉字在内):[^/x00-/xff]
- 匹配空行的正则表达式:/n[/s| ]*/r
- 匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/
- 匹配首尾空格的正则表达式:(^/s*)|(/s*$)
- 匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
- 匹配网址URL的正则表达式:^[a-zA-z]+://(//w+(-//w+)*)(//.(//w+(-//w+)*))*(//?//S*)?$
- 匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
- 匹配国内电话号码:(/d{3}-|/d{4}-)?(/d{8}|/d{7})?
- 匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$
- 下面是常用的正则表达式——
- 验证数字:^[0-9]*$
- 验证n位的数字:^d{n}$
- 验证至少n位数字:^d{n,}$
- 验证m-n位的数字:^d{m,n}$
- 验证零和非零开头的数字:^(0|[1-9][0-9]*)$
- 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
- 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
- 验证非零的正整数:^+?[1-9][0-9]*$
- 验证非零的负整数:^-[1-9][0-9]*$
- 验证非负整数(正整数 + 0) ^d+$
- 验证非正整数(负整数 + 0) ^((-d+)|(0+))$
- 验证长度为3的字符:^.{3}$
- 验证由26个英文字母组成的字符串:^[A-Za-z]+$
- 验证由26个大写英文字母组成的字符串:^[A-Z]+$
- 验证由26个小写英文字母组成的字符串:^[a-z]+$
- 验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
- 验证由数字、26个英文字母或者下划线组成的字符串:^w+$
- 验证用户密码:^[a-zA-Z]w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划
- 线。
- 验证是否含有 ^%&',;=?$" 等字符:[^%&',;=?$x22]+
- 验证汉字:^[u4e00-u9fa5],{0,}$
- 验证Email地址:^w+[-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*$
- 验证InternetURL:^http://([w-]+.)+[w-]+(/[w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))
- *(?S*)?$
- 验证电话号码:^((d{3,4})|d{3,4}-)?d{7,8}$:--正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-
- XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
- 验证身份证号(15位或18位数字):^d{15}|d{}18$
- 验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
- 验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
- 整数:^-?d+$
- 非负浮点数(正浮点数 + 0):^d+(.d+)?$
- 正浮点数 ^(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*))$
- 非正浮点数(负浮点数 + 0) ^((-d+(.d+)?)|(0+(.0+)?))$
- 负浮点数 ^(-(([0-9]+.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*.[0-9]+)|([0-9]*[1-9][0-9]*)))$
- 浮点数 ^(-?d+)(.d+)?$
- 一个判断路径格式的正则Submitted by bizman on 2008, March 3, 2:50 PM. 代码(css+js+ajax+...)
- function checkpath($path){
- $chars = "/^//([a-z0-9_-]+//)*$/i";
- if (!preg_match("$chars",$path)) {
- $result .= 'path Error!';
- $result .= alert_back('path Error!');
- //echo $result;exit;
- return $result;
- }
- return $path;
- }
- 判断路径格式的正则
- function checklocation(file)
- {
- var pattern =/[A-Za-z]/://[^/:/?/"/>/</*]*/;
- // var pattern =/[A-Za-z]/:[^/:/?/"/>/</*]*/; 不要反斜杠,匹配 f: ldksjflksdjflksdjflkdsjf
- return pattern.test(file);
- }
- 匹配象/path/path/的格式,必须以/开头/结尾
- / 开头 ^// 不能再接一个/ [a-z0-9_-]+ 仅能用括号()内任意个字符任意次出现,符号除_-没有空号和
- 其它符号,
- // 接 / ([a-z0-9_-]+//)* 可以出现任意次 $ 任意字符结尾 / 终止 i 忽略大小写
- 不错的JS验证~~~~~~~~~~~~~~~~~~~~~~~~~
- 用途:校验ip地址的格式
- 输入:strIP:ip地址
- 返回:如果通过验证返回true,否则返回false;
- */
- function isIP(strIP) {
- if (isNull(strIP)) return false;
- var re=/^(/d+)/.(/d+)/.(/d+)/.(/d+)$/g //匹配IP地址的正则表达式
- if(re.test(strIP))
- {
- if( RegExp.$1 <256 && RegExp.$2<256 && RegExp.$3<256 && RegExp.$4<256) return true;
- }
- return false;
- }
- /*
- 用途:检查输入字符串是否为空或者全部都是空格
- 输入:str
- 返回:
- 如果全是空返回true,否则返回false
- */
- function isNull( str ){
- if ( str == "" ) return true;
- var regu = "^[ ]+$";
- var re = new RegExp(regu);
- return re.test(str);
- }
- /*
- 用途:检查输入对象的值是否符合整数格式
- 输入:str 输入的字符串
- 返回:如果通过验证返回true,否则返回false
- */
- function isInteger( str ){
- var regu = /^[-]{0,1}[0-9]{1,}$/;
- return regu.test(str);
- }
- /*
- 用途:检查输入手机号码是否正确
- 输入:
- s:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function checkMobile( s ){
- var regu =/^[1][3][0-9]{9}$/;
- var re = new RegExp(regu);
- if (re.test(s)) {
- return true;
- }else{
- return false;
- }
- }
- /*
- 用途:检查输入字符串是否符合正整数格式
- 输入:
- s:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function isNumber( s ){
- var regu = "^[0-9]+$";
- var re = new RegExp(regu);
- if (s.search(re) != -1) {
- return true;
- } else {
- return false;
- }
- }
- /*
- 用途:检查输入字符串是否是带小数的数字格式,可以是负数
- 输入:
- s:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function isDecimal( str ){
- if(isInteger(str)) return true;
- var re = /^[-]{0,1}(/d+)[/.]+(/d+)$/;
- if (re.test(str)) {
- if(RegExp.$1==0&&RegExp.$2==0) return false;
- return true;
- } else {
- return false;
- }
- }
- /*
- 用途:检查输入对象的值是否符合端口号格式
- 输入:str 输入的字符串
- 返回:如果通过验证返回true,否则返回false
- */
- function isPort( str ){
- return (isNumber(str) && str<65536);
- }
- /*
- 用途:检查输入对象的值是否符合E-Mail格式
- 输入:str 输入的字符串
- 返回:如果通过验证返回true,否则返回false
- */
- function isEmail( str ){
- var myReg = /^[-_A-Za-z0-9]+@([_A-Za-z0-9]+/.)+[A-Za-z0-9]{2,3}$/;
- if(myReg.test(str)) return true;
- return false;
- }
- /*
- 用途:检查输入字符串是否符合金额格式
- 格式定义为带小数的正数,小数点后最多三位
- 输入:
- s:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function isMoney( s ){
- var regu = "^[0-9]+[/.][0-9]{0,3}$";
- var re = new RegExp(regu);
- if (re.test(s)) {
- return true;
- } else {
- return false;
- }
- }
- /*
- 用途:检查输入字符串是否只由英文字母和数字和下划线组成
- 输入:
- s:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function isNumberOr_Letter( s ){//判断是否是数字或字母
- var regu = "^[0-9a-zA-Z/_]+$";
- var re = new RegExp(regu);
- if (re.test(s)) {
- return true;
- }else{
- return false;
- }
- }
- /*
- 用途:检查输入字符串是否只由英文字母和数字组成
- 输入:
- s:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function isNumberOrLetter( s ){//判断是否是数字或字母
- var regu = "^[0-9a-zA-Z]+$";
- var re = new RegExp(regu);
- if (re.test(s)) {
- return true;
- }else{
- return false;
- }
- }
- /*
- 用途:检查输入字符串是否只由汉字、字母、数字组成
- 输入:
- value:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function isChinaOrNumbOrLett( s ){//判断是否是汉字、字母、数字组成
- var regu = "^[0-9a-zA-Z/u4e00-/u9fa5]+$";
- var re = new RegExp(regu);
- if (re.test(s)) {
- return true;
- }else{
- return false;
- }
- }
- /*
- 用途:判断是否是日期
- 输入:date:日期;fmt:日期格式
- 返回:如果通过验证返回true,否则返回false
- */
- function isDate( date, fmt ) {
- if (fmt==null) fmt="yyyyMMdd";
- var yIndex = fmt.indexOf("yyyy");
- if(yIndex==-1) return false;
- var year = date.substring(yIndex,yIndex+4);
- var mIndex = fmt.indexOf("MM");
- if(mIndex==-1) return false;
- var month = date.substring(mIndex,mIndex+2);
- var dIndex = fmt.indexOf("dd");
- if(dIndex==-1) return false;
- var day = date.substring(dIndex,dIndex+2);
- if(!isNumber(year)||year>"2100" || year< "1900") return false;
- if(!isNumber(month)||month>"12" || month< "01") return false;
- if(day>getMaxDay(year,month) || day< "01") return false;
- return true;
- }
- function getMaxDay(year,month) {
- if(month==4||month==6||month==9||month==11)
- return "30";
- if(month==2)
- if(year%4==0&&year%100!=0 || year%400==0)
- return "29";
- else
- return "28";
- return "31";
- }
- /*
- 用途:字符1是否以字符串2结束
- 输入:str1:字符串;str2:被包含的字符串
- 返回:如果通过验证返回true,否则返回false
- */
- function isLastMatch(str1,str2)
- {
- var index = str1.lastIndexOf(str2);
- if(str1.length==index+str2.length) return true;
- return false;
- }
- /*
- 用途:字符1是否以字符串2开始
- 输入:str1:字符串;str2:被包含的字符串
- 返回:如果通过验证返回true,否则返回false
- */
- function isFirstMatch(str1,str2)
- {
- var index = str1.indexOf(str2);
- if(index==0) return true;
- return false;
- }
- /*
- 用途:字符1是包含字符串2
- 输入:str1:字符串;str2:被包含的字符串
- 返回:如果通过验证返回true,否则返回false
- */
- function isMatch(str1,str2)
- {
- var index = str1.indexOf(str2);
- if(index==-1) return false;
- return true;
- }
- /*
- 用途:检查输入的起止日期是否正确,规则为两个日期的格式正确,
- 且结束如期>=起始日期
- 输入:
- startDate:起始日期,字符串
- endDate:结束如期,字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function checkTwoDate( startDate,endDate ) {
- if( !isDate(startDate) ) {
- alert("起始日期不正确!");
- return false;
- } else if( !isDate(endDate) ) {
- alert("终止日期不正确!");
- return false;
- } else if( startDate > endDate ) {
- alert("起始日期不能大于终止日期!");
- return false;
- }
- return true;
- }
- /*
- 用途:检查输入的Email信箱格式是否正确
- 输入:
- strEmail:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function checkEmail(strEmail) {
- //var emailReg = /^[_a-z0-9]+@([_a-z0-9]+/.)+[a-z0-9]{2,3}$/;
- var emailReg = /^[/w-]+(/.[/w-]+)*@[/w-]+(/.[/w-]+)+$/;
- if( emailReg.test(strEmail) ){
- return true;
- }else{
- alert("您输入的Email地址格式不正确!");
- return false;
- }
- }
- /*
- 用途:检查输入的电话号码格式是否正确
- 输入:
- strPhone:字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function checkPhone( strPhone ) {
- var phoneRegWithArea = /^[0][1-9]{2,3}-[0-9]{5,10}$/;
- var phoneRegNoArea = /^[1-9]{1}[0-9]{5,8}$/;
- var prompt = "您输入的电话号码不正确!"
- if( strPhone.length > 9 ) {
- if( phoneRegWithArea.test(strPhone) ){
- return true;
- }else{
- alert( prompt );
- return false;
- }
- }else{
- if( phoneRegNoArea.test( strPhone ) ){
- return true;
- }else{
- alert( prompt );
- return false;
- }
- }
- }
- /*
- 用途:检查复选框被选中的数目
- 输入:
- checkboxID:字符串
- 返回:
- 返回该复选框中被选中的数目
- */
- function checkSelect( checkboxID ) {
- var check = 0;
- var i=0;
- if( document.all(checkboxID).length > 0 ) {
- for( i=0; i<document.all(checkboxID).length; i++ ) {
- if( document.all(checkboxID).item( i ).checked ) {
- check += 1;
- }
- }
- }else{
- if( document.all(checkboxID).checked )
- check = 1;
- }
- return check;
- }
- function getTotalBytes(varField) {
- if(varField == null)
- return -1;
- var totalCount = 0;
- for (i = 0; i< varField.value.length; i++) {
- if (varField.value.charCodeAt(i) > 127)
- totalCount += 2;
- else
- totalCount++ ;
- }
- return totalCount;
- }
- function getFirstSelectedValue( checkboxID ){
- var value = null;
- var i=0;
- if( document.all(checkboxID).length > 0 ){
- for( i=0; i<document.all(checkboxID).length; i++ ){
- if( document.all(checkboxID).item( i ).checked ){
- value = document.all(checkboxID).item(i).value;
- break;
- }
- }
- } else {
- if( document.all(checkboxID).checked )
- value = document.all(checkboxID).value;
- }
- return value;
- }
- function getFirstSelectedIndex( checkboxID ){
- var value = -2;
- var i=0;
- if( document.all(checkboxID).length > 0 ){
- for( i=0; i<document.all(checkboxID).length; i++ ) {
- if( document.all(checkboxID).item( i ).checked ) {
- value = i;
- break;
- }
- }
- } else {
- if( document.all(checkboxID).checked )
- value = -1;
- }
- return value;
- }
- function selectAll( checkboxID,status ){
- if( document.all(checkboxID) == null)
- return;
- if( document.all(checkboxID).length > 0 ){
- for( i=0; i<document.all(checkboxID).length; i++ ){
- document.all(checkboxID).item( i ).checked = status;
- }
- } else {
- document.all(checkboxID).checked = status;
- }
- }
- function selectInverse( checkboxID ) {
- if( document.all(checkboxID) == null)
- return;
- if( document.all(checkboxID).length > 0 ) {
- for( i=0; i<document.all(checkboxID).length; i++ ) {
- document.all(checkboxID).item( i ).checked = !document.all(checkboxID).item( i ).checked;
- }
- } else {
- document.all(checkboxID).checked = !document.all(checkboxID).checked;
- }
- }
- function checkDate( value ) {
- if(value=='') return true;
- if(value.length!=8 || !isNumber(value)) return false;
- var year = value.substring(0,4);
- if(year>"2100" || year< "1900")
- return false;
- var month = value.substring(4,6);
- if(month>"12" || month< "01") return false;
- var day = value.substring(6,8);
- if(day>getMaxDay(year,month) || day< "01") return false;
- return true;
- }
- /*
- 用途:检查输入的起止日期是否正确,规则为两个日期的格式正确或都为空
- 且结束日期>=起始日期
- 输入:
- startDate:起始日期,字符串
- endDate: 结束日期,字符串
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function checkPeriod( startDate,endDate ) {
- if( !checkDate(startDate) ) {
- alert("起始日期不正确!");
- return false;
- } else if( !checkDate(endDate) ) {
- alert("终止日期不正确!");
- return false;
- } else if( startDate > endDate ) {
- alert("起始日期不能大于终止日期!");
- return false;
- }
- return true;
- }
- /*
- 用途:检查证券代码是否正确
- 输入:
- secCode:证券代码
- 返回:
- 如果通过验证返回true,否则返回false
- */
- function checkSecCode( secCode ) {
- if( secCode.length !=6 ){
- alert("证券代码长度应该为6位");
- return false;
- }
- if(!isNumber( secCode ) ){
- alert("证券代码只能包含数字");
- return false;
- }
- return true;
- }
- /****************************************************
- function:cTrim(sInputString,iType)
- description:字符串去空格的函数
- parameters:iType:1=去掉字符串左边的空格
- 2=去掉字符串左边的空格
- 0=去掉字符串左边和右边的空格
- return value:去掉空格的字符串
- ****************************************************/
- function cTrim(sInputString,iType)
- {
- var sTmpStr = ' ';
- var i = -1;
- if(iType == 0 || iType == 1)
- {
- while(sTmpStr == ' ')
- {
- ++i;
- sTmpStr = sInputString.substr(i,1);
- }
- sInputString = sInputString.substring(i);
- }
- if(iType == 0 || iType == 2)
- {
- sTmpStr = ' ';
- i = sInputString.length;
- while(sTmpStr == ' ')
- {
- --i;
- sTmpStr = sInputString.substr(i,1);
- }
- sInputString = sInputString.substring(0,i+1);
- }
- return sInputString;
- }
整数或者小数:^[0-9]+/.{0,1}[0-9]{0,2}$
只能输入数字:"^[0-9]*$"。
只能输入n位的数字:"^/d{n}$"。
只能输入至少n位的数字:"^/d{n,}$"。
只能输入m~n位的数字:。"^/d{m,n}$"
只能输入零和非零开头的数字:"^(0|[1-9][0-9]*)$"。
只能输入有两位小数的正实数:"^[0-9]+(.[0-9]{2})?$"。
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"。
只能输入非零的正整数:"^/+?[1-9][0-9]*$"。
只能输入非零的负整数:"^/-[1-9][]0-9"*$。
只能输入长度为3的字符:"^.{3}$"。
只能输入由26个英文字母组成的字符串:"^[A-Za-z]+$"。
只能输入由26个大写英文字母组成的字符串:"^[A-Z]+$"。
只能输入由26个小写英文字母组成的字符串:"^[a-z]+$"。
只能输入由数字和26个英文字母组成的字符串:"^[A-Za-z0-9]+$"。
只能输入由数字、26个英文字母或者下划线组成的字符串:"^/w+$"。
验证用户密码:"^[a-zA-Z]/w{5,17}$"正确格式为:以字母开头,长度在6~18之间,只能包含字符、数字和下划线。
验证是否含有^%&',;=?$/"等字符:"[^%&',;=?$/x22]+"。
只能输入汉字:"^[/u4e00-/u9fa5]{0,}$"
验证Email地址:"^/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$"。
验证InternetURL:"^http://([/w-]+/.)+[/w-]+(/[/w-./?%&=]*)?$"。
验证电话号码:"^(/(/d{3,4}-)|/d{3.4}-)?/d{7,8}$"正确格式为:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。