Javascript(如果与或一起使用)

Javascript(如果与或一起使用),javascript,string,if-statement,or-operator,Javascript,String,If Statement,Or Operator,我相信这很容易,我也看到过类似的问题,但没有人能帮我弄明白为什么这样做行不通。当currentPage被设置为faq或contact时,是否有人能告诉我为什么这个问题没有得到解决 <script type="text/javascript"> function init() { document.getElementById('searchSubmit').onclick=function(){

我相信这很容易,我也看到过类似的问题,但没有人能帮我弄明白为什么这样做行不通。当
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>

函数init(){
document.getElementById('searchSubmit')。onclick=function(){
var uriArgs=window.location.search;
var currentPage=uriArgs.match(/page=?(\w*)/);
如果((currentPage==null)| |(currentPage==faq')| |(currentPage==contact')){
currentPage=“index”;
document.getElementById('searchHidden')。value=currentPage;
}
否则{
document.getElementById('searchHidden')。value=currentPage[1];
}
}
}
window.onload=init;
我将警报设置为弹出,以便查看它是否正确设置为
faq
contact
,因此我不确定
if
语句为什么没有捕捉到这一点

提前感谢

如果存在匹配项,将返回数组索引1处的捕获组。例如:

> 'page=sdfsfsdf'.match(/page=?(\w*)/)
["page=sdfsfsdf", "sdfsfsdf"]
因此,您需要查看
match
返回的数组内部(假设它不是
null


您的问题不在于
if
-语句,而在于:它返回匹配和匹配组的数组-您希望与第一个匹配组进行比较

var match = window.location.search = uriArgs.match(/page=?(\w*)/),
    currentPage = false;
if (match != null)
    currentPage = match[1];

if ( !currentPage || currentPage=='faq' || currentPage=='contact' ) {
    // do something
}

天哪,我不知道为什么这种事情总是发生在我身上,但我刚刚意识到,在我发布了这个问题之后。谢谢你的帮助。现在可以了。
var match = window.location.search = uriArgs.match(/page=?(\w*)/),
    currentPage = false;
if (match != null)
    currentPage = match[1];

if ( !currentPage || currentPage=='faq' || currentPage=='contact' ) {
    // do something
}