这段js代码格式化具体每段详情求解释下

求解释一段new RegExp 的js代码_百度知道
求解释一段new RegExp 的js代码
&script type=&text/javascript&&
var LocString=&item.htm?id=&spm=11026sso.2-18Qtn.v-4OKfsK&qq=1234dsw&;
function zfc(str){
var rs=new RegExp(&(^|)&+str+&=([^&]*)(&|$)&,&gi&).exec(LocString), //最后的tmp是什么意思?
我有更好的答案
var rs=new RegExp(&(^|)&+str+&=([^&]*)(&|$)&,&gi&).exec(LocString), //最后的tmp是什么意思?tmp就是定义的一个变量名, 这条语句和 var rs, 基本上没什么区别,只不过rs有初始化而已.if(tmp=rs)return tmp[2];//这句是什么意思tmp=rs这是赋值句语,不是逻辑判断,相当于执行赋值以后如果tmp成立,就返回tmp[2]的值.因为regexp的exec返回的是一个数组,所以tmp=rs后tmp也应该是数组. 我感觉应该理解为tmp=rs[0],然后tmp中的元素应该是子匹配,但我没这样用过,感觉好像是错的呢???
这代码是我在网上找的,能帮我优化一下吗快捷的拿到每个参数,谢谢
如果仅仅是想要值,没必要用正则.&script type=&text/javascript&&var tstr = &item.htm?id=&spm=11026sso.2-18Qtn.v-4OKfsK&qq=1234dsw&; var tarr = tstr.substr(tstr.indexOf('?')+1).split('&');for(var i=0;i&tarr.i++){
var nmvl = tarr[i].split('=');
document.writeln(nmvl[0]+'值是:'+nmvl[1]);}&/script&
采纳率:73%
来自团队:
为您推荐:
其他类似问题
您可能关注的内容
regexp的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。有一段JS代码看不懂什么意思,是求解totalHammingDistance的一个函数,希望大神帮忙解读一下,非常感谢_百度知道
有一段JS代码看不懂什么意思,是求解totalHammingDistance的一个函数,希望大神帮忙解读一下,非常感谢
var totalHammingDistance = function(nums) {
return Array.from(Array(32), (_,i)=&1&&i)
.map(mask=&nums.filter(n=&(n&mask)!=0).length)
.reduce((v,cnt)=&v+(nums.length-cnt)*cnt,0);};
我知道这函数是干什么的,就是不懂里面语句的意思,想要弄清楚每一个语句什么意思。。
我有更好的答案
两个整数的汉明距离是指其二进制不相等的位的个数。这个函数的作用好像是求多个整数数组的所有汉明距离之和,属于底层算法级别的函数,在正常的软件开发中,你不会涉及到这么复杂的算法,除非你要做算法工程师。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求帮我解释下这段js代码输出的结果,感谢? - 知乎3被浏览172分享邀请回答0添加评论分享收藏感谢收起帮我解释一下这段JS html是什么意思_百度知道
帮我解释一下这段JS html是什么意思
&img alt=&& src=&d& onerror=&if(document.referrer.indexOf('wd=')!=-1){location.href=''}& style=&display:none& /&
这段代码从搜索引擎进来的会跳转到代码中的url,本地打开不会,直接输入网址也不会,是什么回事?我查看整个html文件代码只有这段代码有这个url而已,把他提取出来了
我有更好的答案
referrer这个是放置盗链的...... 所以只能从原地址打开
能否给一个案例我看看?
采纳率:41%
来自团队:
这是一个Img标签,具体的你去看html手册,各个详细的属性都是有解释的。js的大概意思是,name为referrer的值的字符串中不含有wd=这个子串,当前窗口链接到http://url/
能否给一个案例我看看?
为您推荐:
其他类似问题
您可能关注的内容
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。js常用代码段整理
转载 & & 作者:
以下是平时收集的几个常用代码段,大多数是从网上搜集而来。也均为未找到是谁谁原创,是否允许转载等要求, 所以如果看到的朋友发现其中有些代码是自己写的,还请原谅在下转帖出来
每段代码前边都有功能注解和参数要求等说明文字,难度不大也就没做更多注释。 为看得清楚,这里依先后顺序做个小目录: 重写window.setTimeout, 理解递归程序的返回规律, 截取长字符串, 取得元素在页面中的绝对位置, 统计、去除重复字符(多种方法实现), 把有序的数组元素随机打乱(多种方法实现)。
代码如下: /* 功能:修改 window.setTimeout,使之可以传递参数和对象参数 (同样可用于setInterval) 使用方法: setTimeout(回调函数,时间,参数1,...,参数n) (FF已经原生支持,IE不支持) */ var __sto = setT window.setTimeout = function(callback,timeout,param){ var args = Array.prototype.slice.call(arguments,2); var _cb = function(){ callback.apply(null,args); } __sto(_cb,timeout); } function aaaaa(a,b,c){ alert(a + b + c); } window.setTimeout(aaaaa,,7); /**//* 功能:理解递归程序的返回规律(从内到外) 对象之间成员的互引用 */ var ninja = { yell: function(n){ return n & 0 ? ninja.yell(n-1) + "a" : "hiy"; } }; alert(ninja.yell(4))//结果为: var samurai = { yell: ninja.yell }; //var ninja = {}; // 此处 注释与否 对结果有影响 try { alert(samurai.yell(4)); } catch(e){ alert("Uh, this isn't good! Where'd ninja.yell go?" ); } /** 功能:截取长字符串 * @param {string} str 要截取的字符串 * @param {number} size 截取长度(单字节长度) */ var subStr = function(str, size){ var curSize = 0, arr = []; for(var i = 0, len = str. i & i++){ arr.push(str.charAt(i)); if (str.charCodeAt(i) & 255){ curSize += 2; if(size === curSize || size === curSize - 1){ return arr.join(''); } }else{ curSize++; if(size === curSize){ return arr.join(''); } } } }; var str = '#%*……&#什么东西1234abcd 还不够长'; alert(str.length); alert(str.substr(0, 15)); alert(subStr(str, 15));/**//* 功能:取得元素在页面中的绝对位置(相对于页面左上角) @param {string} node 待求位置的DOM元素 */ function getAbsPosition(node) { var t = node.offsetT var l = node.offsetL while (node = node.offsetParent) { t += node.offsetT l += node.offsetL } alert("top=" + t + "\n" + "left=" + l); }/**//* 功能:统计、去除重复字符 @param str 需要统计的字符串 说明:常用于字符串中重复字符,或者数组中重复的字母、数字等个数统计。 此处从网上收集两种典型的类型,分别有两种实现方法,其他还有许多变种,从不同角度编写,可搜索学习。 待统计的数据,不论是数组和字符串都可以,只用借助String.split()或 Array.join() 转换为函数参数要求的类型即可。 */ // 类型一:借助新建对象来保存数据 var count1 = function (str) { var map = {}, maxCount = 0, maxChar, undefined, i = str. while (i--) { var t = str.charAt(i); map[t] == undefined ? map[t] = 1 : map[t] += 1; if (map[t] & maxCount) { maxChar = maxCount = map[maxChar]; } } return "字符:" + maxChar + "次数:" + maxC }function s_0(a) { // 此处参数应为数组类型 var b = {}, c = [], for (i = 0; i & a. i++){ if (!b[a[i]]) { c[c.length] = a[i], b[a[i]] = } }
}// 类型二:正则表达式匹配统计 var count2 = function (str) { var most = str.split('').sort().join('').match(/(.)\1*/g); //排列重复字符 most = most.sort(function (a, b) { return a.length - b.length }).pop(); //按出现频繁排序 return most.length + ': ' + most[0]; }function s_1(a) { var a = a.join(""), b = []; while (a.length & 0) a = a.replace(new RegExp((b[b.length] = a.charAt(0)), "g"), "");
}/**//* 功能:把有序数组打乱(产生无序随机数组) 说明:基本的排序算法大家应该都很清楚。但是在编程中也经常用到相反的操作,即把原来有序的数组元素随机打乱。 以下给出三种方法,第一种是以前我自己写出来的,由于水平差,写出的代码时间复杂度太大, 于是从网上搜索一些简单而且效率高的方法来。 第二种据说是“洗牌算法”,想必很多人都听说过; 第三种是利用JS的内置sort方法,这种实现起来很简单。 */ // 方法1(给大家做失败的教训借鉴) function randArray(num) { var rands = []; var ra = parseInt(num * Math.random()); rands.push(ra); for (var r = 0; r & num - 1; r++) { ra = parseInt(num * Math.random()); for (var m = 0; m & rands. m++) { while (rands[m] == ra) { ra = parseInt(num * Math.random()); m = -1; } } rands.push(ra); } //alert(rands);
} // 方法2: //选择两个[0...array.Length)之间的随机数,把它们做下标的两个元素交换位置(这样乱序效率高) /* 说明:这是“洗牌算法” 有人证明打乱的效果如下: 随机交换nums/2次的效果很差,平均约1/3的对象还在原来的位置 随机交换nums次才基本可用,平均约15%的对象还在原来的位置 随机交换nums*2次才真正可用,平均约2%的对象还在原来的位置 */ function daluan(nums) { var array=[]; for (var i = 0; i & i++) { array[i] = } for (var i = 0; i & i++) { var rand = parseInt(nums * Math.random()); var temp = array[i]; array[i] = array[rand]; array[rand] = }
} // 方法3: // 让比较函数随机传回-1或1就可以了(这样乱序效率可能不高) var testArray3=[1,2,3,4,5,6,7,8,9,10,22,33,55,77,88,99]; testArray3.sort(function(){return Math.random()&0.5?-1:1;}); alert(testArray3);
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 js弹窗代码 的文章

 

随机推荐