-
exec
var reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;//是否为有效数字的正则,多位数,第一位不能为0; var str1 = "1255552.3", str2="2345", str3="0"; var ary = []; var res = reg.exec(str1); console.log(reg.test(str1),reg.test(str2),reg.test(str3)); console.log("exec str1",reg.exec(str1));//["1255552.3", "1255552", "1255552", ".3", index: 0, input: "1255552.3"] console.log("exec str2",reg.exec(str2));//["2345", "2345", "2345", undefined, index: 0, input: "2345"] console.log("exec str3",reg.exec(str3));//["0", "0", undefined, undefined, index: 0, input: "0"]
-
** match **
var reg = /^[+-]?(\d|([1-9]\d+))(.\d+)?$/;//是否为有效数字的正则,多位数,第一位不能为0; var str1 = "1255552.3", str2="2345", str3="0"; ary = str1.match(reg); console.log(ary);//["1255552.3", "1255552", "1255552", ".3", index: 0, input: "1255552.3"]
-
** replace *
replace:字符串替换
第一个参数是一个正则:把正则所匹配的内容都替换掉
-
先把大正则匹配的内容捕获到(捕获到的结果个我们用exec捕获到的结果基本一致)
-
把我们捕获的内容进行替换
var str = "20151215"; var reg = /\d/g; var ary = ["零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"]; //一共要捕获8次,我们的第二个参数[function]要执行8次 //每一执行都把当前正则捕获的内容传递给我们的[function] //每一次执行的返回值(写在return后面的)都相当于把当前大正则捕获的内容替换成我们返回的内容 str = str.replace(reg, function () { //第一次捕获2 ->"贰" ary[2] //第二次捕获0 ->"零" ary[0] //arguments[0]->每一次执行函数我们正则捕获到的内容 console.log(arguments); //第一次:arguments->["2", 0, "20151215"] arguments[0]->"2" return ary[arguments[0]];//->return ary["2"] ->return "贰"; }); console.log(str);//贰零壹伍壹贰壹伍
-
模板引擎实现的原理
var str = "my name is {0},my age is {1},i can write {2},so ~~"; var ary = ["zhu", "18", "JavaScript"]; //->"my name is zhu,my age is 18,i can write JavaScript,so~~"; str = str.replace(/{(\d)}/g, function () { //每一次执行function //arguments[0] ->当前大正则捕获的内容 {0} //arguments[1] ->当前第一个小分组捕获的内容 0 //return value; ->用value把大正则捕获的内容替换 {0}被value替换了 console.log(arguments); return ary[arguments[1]]; }); console.log(str);
-
1、获取一个字符串中出现次数最多的字符?
var str = "zhuanbangzhuzhu";
-
2、千分符
var str = "5634780";//->"5 634 780"
-
3、获取地址栏中的问号传递进来的参数
URL:https://passport.baidu.com/v2/?reg=200&tt=300&gid=100 目标数据:{reg:200,tt:300,gid:100}
-
4、格式化时间
var str="2015-12-14 13:8:5"; ->"2015年12月14日 13时08分05秒"