JavaScript随记汇总

时间:2021-03-22 17:39:30

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>

5.js关闭当前页面(窗口)不带任何提示

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;
}

8.判断客户端是否是iOS或者Android

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终端