ak8*_*k85 1 javascript url jquery
在如何检查url是否包含给定字符串的问题中.Javascript/jquery 答案检查url是否包含给定的字符串.我想扩展它以检查它是否包含两个名称= franky && gender = male.我试过了
if(window.location.href.indexOf("name=franky" && "gender=male") > -1)
Run Code Online (Sandbox Code Playgroud)
这似乎最初起作用,但经过进一步的测试,我发现如果只有一个名称或性别存在,它似乎有效.我在哪里错了?
您可以将其分成两部分并调用indexOf两次,而不是尝试在同一个调用中检查两个字符串.像这样的东西:
if(window.location.href.indexOf("name=franky") > -1 &&
window.location.href.indexOf("gender=male") > -1)
Run Code Online (Sandbox Code Playgroud)
该.indexOf()函数仅查找单个字符串.要测试两个字符串,您需要.indexOf()根据Christofer的答案进行两次调用:
if(window.location.href.indexOf("name=franky") > -1 &&
window.location.href.indexOf("gender=male") > -1)
Run Code Online (Sandbox Code Playgroud)
我发布答案的原因是简要解释&&运算符的工作原理:给定expr1 && expr2,&&运算符 "返回 expr1 它是否可以转换为false;否则返回" expr2.
"转换为虚假"是什么意思?基本上null,undefined,0,NaN和""(空字符串)是"falsy"和将"转换为假".非零数字,非空字符串和任何对象都是"真实的"并将转换为true.
这时候,你说的是指"name=franky" && "gender=male"在&&运营商测试第一个操作数,发现(这种情况下),它不能被转换为false,那么它将返回"gender=male".所以你的代码似乎在某些时候工作的原因是它实际上是这样做的:
if(window.location.href.indexOf("gender=male") > -1)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4592 次 |
| 最近记录: |