Javascript Can';无法从URL获取某些参数-返回NaN/null

Javascript Can';无法从URL获取某些参数-返回NaN/null,javascript,Javascript,我有一个简单的字符串: var url_string = 'https://www.booking.com/searchresults.html?label=gen173nr-1DCAEoggJCAlhYSDNYBGjBAYgBAZgBMcIBCndpbmRvd3MgMTDIAQzYAQPoAQH4AQKSAgF5qAID;sid=2a2d61dc6122c8a17b369733693bc965;checkin_month=5&checkin_monthday=17&checki

我有一个简单的字符串:

var url_string = 'https://www.booking.com/searchresults.html?label=gen173nr-1DCAEoggJCAlhYSDNYBGjBAYgBAZgBMcIBCndpbmRvd3MgMTDIAQzYAQPoAQH4AQKSAgF5qAID;sid=2a2d61dc6122c8a17b369733693bc965;checkin_month=5&checkin_monthday=17&checkin_year=2018&checkout_month=6&checkout_monthday=1&checkout_year=2018&class_interval=1&dest_id=-90115&dest_type=city&dtdisc=0&from_sf=1&group_adults=3&group_children=0&inac=0&index_postcard=0&label_click=undef&no_rooms=1&offset=0&postcard=0&raw_dest_type=city&room1=A%2CA%2CA&sb_price_type=total&src=index&src_elem=sb&ss=Ni%C5%A1&ss_all=0&ssb=empty&sshis=0&ssne=Ni%C5%A1&ssne_untouched=Ni%C5%A1&'
这是我从

var url_string = window.location.href;

var url = new URL(url_string);
这是我目前所在的地址。现在我想提取一些参数

var no_rooms = url.searchParams.get("no_rooms"); // 1

var group_children = url.searchParams.get("group_children"); // 0

var checkin_month = url.searchParams.get("checkin_month"); // NaN
checkin\u month
,一个字符串中的参数,它是一个数字,怎么可能打印出
NaN
?我错过了什么

编辑: 我替换了
使用

url_string.replace(/;/g, "?");
重复同样的过程,当我到达

var checkin_month = url.searchParams.get("checkin_month"); // I got null
编辑2:
我正在用
替换,而我应该用
&

替换,因为url没有格式化,所以有两种方法

解决方案1:

替换
&
进行编码>以使其成为查询参数

var-url\u-string=>https://www.booking.com/searchresults.html?label=gen173nr-CAEOGGJCALHYSDNYBGGBAZGBMCIBNDPBMRVD3MGMTDIQZYAQPOAQH4AQKSAGF5QAID;sid=2A2D61DC6122C8A17B36933693BC965;入住月=5,入住月=17,入住年=2018,结帐月=6,结帐月=1,结帐年=2018,结帐时间间隔=1,目的地id=-90115,目的地类型=city&dtdisc=0,来自sf=1,团体成人=3,团体儿童=0,索引明信片=0,标签点击=undef&no房间=1,偏移量=0,明信片=0,原始类型=city&rooma&rooma=2CA%src总价格指数_元素=sb&ss=Ni%C5%A1&ss_全部=0&ssb=空&sshis=0&ssne=Ni%C5%A1&ssne_未触及=Ni%C5%A1&'
var newUrlString=url_string.replace(/;/g,,&');
var url=新的url(newUrlString);
var checkin_month=url.searchParams.get(“checkin_month”);

日志(“签入月为”+签入月)查询参数应该用符号(
&
)分隔,但有些参数用分号分隔。例如,在您的url中:
。。。sid=2A2D61DC6122C8A17B36933693BC965;签入月份=5…
,注意签入月份之前的分号。哦,是的,很好。那么我不能使用这个
seachParams.get()
方法了?我应该把绳子切成薄片吗@CRiceNo需要切分或做其他事情,正如@CRice所说,只要用符号替换分号。然后你就可以使用你的searchParams方法。否则,
url.searchParams.get('label')。split(';')).find(e=>e.contains('checkin_month')).split('='1]
编辑了这篇文章。谢谢你的两种解决方案。是我的一个小错误让我第一次编辑了这篇文章。