作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我确信这非常简单,而且我也见过类似的问题,但没有一个能帮助我弄清楚为什么这不起作用。没有人能告诉我为什么当 currentPage
设置为 faq
或 contact
时这不会捕获?
<script type="text/javascript">
function init() {
document.getElementById('searchSubmit').onclick=function(){
var uriArgs = window.location.search;
var currentPage = uriArgs.match(/page=?(\w*)/);
if ( (currentPage == null) || (currentPage == 'faq') || (currentPage == 'contact') ) {
currentPage = "index";
document.getElementById('searchHidden').value = currentPage;
}
else {
document.getElementById('searchHidden').value = currentPage[1];
}
}
}
window.onload=init;
</script>
我设置了一个弹出窗口警报,这样我就可以看到它是否被正确设置为faq
或contact
,所以我不确定为什么if
语句没有捕获到这一点。
提前致谢!
最佳答案
如果有匹配,String.match
将返回数组索引 1 处的捕获组。示例:
> 'page=sdfsfsdf'.match(/page=?(\w*)/)
["page=sdfsfsdf", "sdfsfsdf"]
因此,您需要查看 match
返回的数组的内部(假设它不是 null
)。
if (currentPage == null || currentPage[1] == 'faq' || currentPage[1] == 'contact') {
/* ... */
}
关于Javascript IF 与 OR 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12733804/
我是一名优秀的程序员,十分优秀!