js正则练习以及常用正则

练习
  1. 取出"width:63px;"的数字
var str="width:63px;";
//第一种方式
var num=str.replace(/width:(\d*)px/,'$1');
console.log(num); //63
//第二种方式
var num=str.replace(/[^\d]/g,'');
console.log(num); //63
//第三种方式
var num=str.match(/\d+/g)[0];
console.log(num); //63
  1. 取出"style='height:34px;width: 63px;'"的宽像素值。
var str="style='height:34px;width: 63px;'";
//先匹配出"width:63",再匹配出63
var num=str.match(/width:(\s?\d+)/)[0].match(/\d+/)[0]; 
console.log(num); //63
常用正则
  1. 用正则实现将手机号变成170****5821格式。
var phone="17073115821"; //手机号我随便输入的。。。
var reg=/(\d{3})\d{4}/;
phone=phone.replace(reg,"$1****");
console.log(phone); //"170****5821"
  1. 验证最多保留两位数字
var reg=/^(\-)?(0|([1-9]\d*))(\.\d{1,2})?$/;  //正负数都可,若只为正数将(-)?去掉
reg.test(""); //false
reg.test("1"); //true
reg.test("0.5"); //true
reg.test("2.897"); //false
  1. 输入框一边输入一边验证,最多保留两位数字
function changeValue(value){
	if (value) {
		if (typeof value != "string") {
			value = value.toString();
		}
		value = value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3'); //正负数都可,若只为正数将(-)*去掉
	}
	return value;
}
  1. 验证手机号
var reg=/^[1][3,4,5,7,8][0-9]{9}$/; //粗略验证格式
var reg2=/^1(3[0-9]|4[5,7,9]|5[0,1,2,3,5,6,7,8,9]|6[2,5,6,7]|7[0,1,2,3,5,6,7,8]|8[0-9]|9[1,8,9])\d{8}$/; //比较全
  1. 验证身份证号
var reg=/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; //最简单,只验证格式是否正确
var reg1=/^[1-9]\d{5}(18|19|20)\d{2}((0[1-9])|(1[0-2]))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/; //较详细

注: 身份证号正确性只依赖正则不行,传送门:js验证身份证号

  1. 验证是否是中文字符
    (1)匹配中文字符的正则表达式: /[\u4e00-\u9fa5]/
    (2)匹配双字节字符(包括汉字在内):/[^\x00-\xff]/

你可能感兴趣的:(技术贴,javascript,正则表达式)