$.ajax({
url:"../json/month_drop.json",
type:"get",
async:false,
dataType:'json',
beforeSend:function(){},
success:function(data){
if(data.code == 100){
if(data.content){
var opsdata = data.content;
$.each(opsdata,function(i,obj){
var reg = /^(\d{4})-(\d{2})-(\d{2})$/g;
console.log($(this)[i] == opsdata[i]);
console.log($(this)[i].orderMonth.substr(0,9).replace(reg,"$1年$2月$3日"));
// var ymd = opsdata[i].orderMonth;
// var dropdate = ymd.match(reg);
// var curdate = opsdata[i].orderMonth.substr(0,9);
// var curdate = "2016-01-23";
// var sss = opsdata[i].orderMonth.substr(0,9).replace(reg,"$1年$2月$3日");
// console.log(sss);
// console.log(dropdate);
// console.log(opsdata[i].orderMonth.substr(0,9));
// console.log(opsdata[i].cname);
// $("<option value='"+opsdata[i].cname+"'>"+opsdata[i].cname+"</option>").appendTo("#mth-box");
});
}
}
},
error:function(data){
alert("error");
}
})
console.log($(this)[i] == opsdata[i]);// 第一次输出的是true,第二次就是false 为什么会这样?
模拟格式:
{
"code":100, "content":[ { "id":54, "orderMonth":"2016-12-29 14:33:20" }, { "id":156, "orderMonth":"2016-11-29 14:36:13" } ], "message":"成功" }
var reg = /^(d{4})-(d{2})-(d{2})$/g;
测试的时候是可以的!为什么放到$.each中循环匹配就不行?
第一种方案: 把全局的g去掉
第二种方案: 每次匹配之后,把reg.lastIndex = 0;
因为lastIndex是规定下一次匹配的起始位置
循环es6:
这样不会出现索引永远是最后一个的问题,
不过正则的问题lastIndex是正确的