工作笔记——前端
1、把一串数字转换成标准时间格式
var date = 20161203181611; var result = date.ToString("####-##-## ##:##:##");
2、js验证手机号码
function checkPhone(){ var phone = document.getElementById('phone').value; if(!(/^1[34578]\d{9}$/.test(phone))){ alert("手机号码有误,请重填"); return false; } }
3、双引号和单引号嵌套问题!在下面的代码中,onclick属性的值中转义字符'\'只对单引号' 起作用,因为最外层用的是双引号",转义字符就不再对双引号\"起作用
<a onclick="GetCars('22','2'),copyTXT('46<span style=\'color:red\'>7</span>456<span style=\'color:red\'>7</span>')">(1)</a>
<a onclick="GetCars('22','2'),copyTXT('46<span style=\"color:red\">7</span>456<span style=\"color:red\">7</span>')">(1)</a>
4、正则表达式验证输入内容为小数位不超过2位的数值:var reg = /^\d{0,8}\.{0,1}(\d{1,2})?$/
5、浏览器跨域的解决方式有很多种(注意:跨域限制访问,其实是浏览器的限制):
1.jsonp 需要目标服务器配合一个callback函数。
2.window.name+iframe 需要目标服务器响应window.name。
3.window.location.hash+iframe 同样需要目标服务器作处理。
4.html5的 postMessage+ifrme 这个也是需要目标服务器或者说是目标页面写一个postMessage,主要侧重于前端通讯。
5.CORS 需要服务器设置header :Access-Control-Allow-Origin。
6.nginx反向代理 这个方法一般很少有人提及,但是他可以不用目标服务器配合,不过需要你搭建一个中转nginx服务器,用于转发请求。
6、js 时间转化为几天前、几小时前、几分钟前
function getDateDiff(dateTimeStamp){ var minute = 1000 * 60; var hour = minute * 60; var day = hour * 24; var halfamonth = day * 15; var month = day * 30; var now = new Date().getTime(); var diffValue = now - dateTimeStamp; if(diffValue < 0){return;} var monthC =diffValue/month; var weekC =diffValue/(7*day); var dayC =diffValue/day; var hourC =diffValue/hour; var minC =diffValue/minute; if(monthC>=1){ result="" + parseInt(monthC) + "月前"; } else if(weekC>=1){ result="" + parseInt(weekC) + "周前"; } else if(dayC>=1){ result=""+ parseInt(dayC) +"天前"; } else if(hourC>=1){ result=""+ parseInt(hourC) +"小时前"; } else if(minC>=1){ result=""+ parseInt(minC) +"分钟前"; }else result="刚刚"; return result; }
7、js 将从后台得到的时间戳(毫秒数)转换为日期格式
function getDate(time) { var unixTimestamp = new Date(time * 1000); commonTime = unixTimestamp.getFullYear() + "-" + (unixTimestamp.getMonth() + 1) + "-" + unixTimestamp.getDate() + " " + unixTimestamp.getHours() + ":" + unixTimestamp.getMinutes() + ":" + unixTimestamp.getSeconds(); alert(commonTime); }
8、js 清除iframe父级的Cookie
function delCookie(time) { var myDate = new Date(); myDate.setTime(-1000);//设置时间 parent.document.cookie = time + "=;expires=" + myDate.toGMTString();
//document.cookie = time + "=;expires=" + myDate.toGMTString();
}
9、return false 阻止a标签跳转,但是有target标签的话就无法阻止a跳转了
<a href="javascript:void(0)" onclick="return checkData()">content</a> <a href="javascript:void(0)" target="_blank" onclick="return checkData()">content</a>
10、设置表格table边框样式
table { width:100%; border:solid #ccc; border-width:1px 0px 0px 1px; }
11、Fiddler模拟post请求时Header需要增加Content-Type,格式有四种:分别是application/x-www-form-urlencoded(这也是默认格式)、application/json、text/xml以及multipart/form-data格式
12、WdatePicker时间格式设置:
<input type="text" class="form-control" id="friendendDate" name="friendendDate" value="" style="height:30px;width:150px" onfocus="WdatePicker({ startDate: '%y-%M-%d %H:%m:%s', dateFmt: 'yyyy-MM-dd HH:mm:ss', alwaysUseStartDate: true })" />
13、JQuery对象的each方法中 return false 或者 break 都没有用,得设置个标记
$('.weixin').each(function () {
var text = $(this).parent().siblings().eq(2).find('input[type="text"]');
if (($(this).val() != "" && text.val() != "" && text.val() != "0") || ($(this).val() == "" && text.val() == "")) {
} else {
alert("数据不完整");
//return false;
flag = false;
return;
}
});
14、<a>标签不能用 $('#test').click() 事件模仿点击
<a href="www.baidu.com" id="test"></a>
15、打开QQ聊天窗口:
1、打开会话代码:tencent://Message/?Uin=9002327&websiteName=www.fgwz.la&Menu=yes【红色部分改成自己的qq】
2、强制添加好友的代码:tencent://AddContact/?fromId=45&fromSubId=1&subcmd=all&uin=9002327&website=www.fgwz.la
3、谈出聊天窗口页面:window.open ("page.html", "newwindow","height=100, width=400, top=0,left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no")
16、直接调用selectChange("Init"),函数接收到的第一个参数是string类型的Init,如果通过动态绑定事件来调用方法,则函数接收的第一个参数是event对象。
selectChange("Init");
$('#pname').on('change',selectChange);
function selectChange(value) {
if (typeof value == "string") {
$('#name').val(value);
selectChangeNames(true);
}else if(typeof value == "object"){
selectChangeNames(false);
} else{
alert("参数有误")
}
}
18、枚举类型转换成字典
var states = typeof(ServiceConfig.DealState).ToDictionary().Select(w => new SelectListItem() { Text = w.Key, Value = w.Value }).ToList();
19、td内容不换行
<td style="white-space: nowrap;">@item.uname</td>
20、jquery find 和 filter:
find()会在div元素内寻找class为rain 的元素,是对它的子集操作
filter()则是筛选div的class为rain的元素,是对它自身集合元素筛选
21、