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
}