JavaScript随记汇总
1.<script>标签嵌套,浏览器无法正常解析的问题: 百度知道回答
<script>FTAPI_slotid = 1007894;FTAPI_sync = true</script><script src="http://pic.fastapi.net/sdk/js/_a.js" charset="utf-8"></script>
看似没问题,但浏览器解析时会把首尾两个<script>作为一对来解析,导致无法正常解析。
<script></script>标签中不能再出现同样的script标签,但可以用字符串连接符连接
解决办法:
将</script>用字符串拼接来写就可以了
//投放给的广告
document.write('<script>FTAPI_slotid = 1007894;FTAPI_sync = true</scr' + 'ipt><script src="http://pic.fastapi.net/sdk/js/_a.js" charset="utf-8"></scr' + 'ipt>');
相关阅读:js未结束的字符串常量错误解决方法
2.JS输出object内容:[object Object]
var temp = ""; for(var i in obj){ //用javascript的for/in循环遍历对象的属性 temp += i+":"+obj[i]+"\n"; } alert(temp); //结果:cid:C0 \n ctext:区县
3.设置js文件编码方式:
<script type="text/javascript" charset="utf-8" src="test.js"></script>
4.让引入的js不读取缓存处理:测试时经常修改js比较实用
<script type="text/javascript" src="test.js?<%=DateTime.Now.Ticks%>"></script>
6.获取url中的参数
//获取url中的参数,name为字符串参数,不区分大小写 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i"); var r = window.location.search.substr(1).match(reg); if (r != null) { return decodeURI(r[2]); } else { return null; } }
下面的废弃,会乱码,而且不区分大小写:
//获取url中的参数 function getUrlParam(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象 var r = window.location.search.substr(1).match(reg); //匹配目标参数 if (r != null) return unescape(r[2]); return null; //返回参数值 }
7.正则判断手机号码
var mobile = $.trim($('#mobile').val()); var reg = /^(((13[0-9]{1})|(14[0-9]{1})|(15[0-9]{1})|(17[0-9]{1})|(18[0-9]{1}))+\d{8})$/; if (!reg.test(mobile)) { layer.msg("您输入的手机号有误,请重新输入"); return false; }
var u = navigator.userAgent; var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端 var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端