正则3

匹配一个有效数字:正数、负数、0、小数

var reg = /^[+-]?(?:\d|[1-9]\d+)(?:\.\d+)?$/;

[+-]? 验证可能是负数也可能是正数
(?:\d|[1-9]\d+) 一位数的时候0-9的一个数字,两位数及以上0不能作为开头
(?:\.\d+)? 首先可以有小数点也可以没有,如果出现小数点,后面必须至少跟一位数字

 


手机号码:第一位是1,剩余的是数字即可(10位数字)

var reg = /^1\d{10}$/;

去除首尾空格

String.prototype.myTrim = function () {

return this.replace(/(^\s*|\s*$)/g, "");

 }
 console.log("  luke".myTrim());

邮箱:xxx@xxx.xxx.xxx xxx@xxx.xxx

var reg = /^(?:[0-9_a-z.A-Z-]+)@(?:[0-9a-zA-Z]+)(?:\.[a-zA-Z]{2,4}) {1,2} $/;   {1,2} 一组或两组

获取一个字符串中出现次数最多的字符

var str = "lu man man qi xiu yuan xi wu jiang shang xia er qiu suo";
//通过replace方法,获取每一个字符在字符中出现的次数
var obj = {};
//正则匹配多少次函数就执行多少次,
str.replace(/[^\s\n\b]/g, function () {
//每次执行当前项
var cur = arguments[0];

obj[cur] = obj[cur] >= 1 ? obj[cur] + 1 : 1;
//此时obj存储了每一个字符出现的次数
console.log(obj[cur]);
});
//通过假设法先获取最多出现的次数max
var max = 0, maxObj = {};
for (var key in obj) {
max = obj[key] > max ? obj[key] : max;
}
//然后把所有出现max次的字符保存在一个新的对象中
for (var key in obj) {
obj[key] === max ? maxObj[key] = obj[key] : void 0;
}
obj = null;
console.log(maxObj);//Object {u: 6, a: 6, i: 6}
var ary = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"];
var str = "1990年1月17日";
var regEx = /\d/g;
console.log(regEx.test(str));
str = str.replace(regEx, function () {
return ary[arguments[0]];
});
console.log(str);
var str = "my name is {0},my age is {1},my love {2}...";
var ary = ["luke", "28", "dog"];
var reg = /{(\d+)}/g;
console.log(reg.test(str));
str = str.replace(reg, function () {
console.log(arguments);
var groupCon = arguments[1];
console.log(groupCon);
return ary[groupCon];
});
console.log(str);

 

posted @ 2017-05-25 21:32  .luke  阅读(160)  评论(0)    收藏  举报