获取网址,查询字符串和哈希值

时间:2017-11-09 12:32:59

标签: javascript

我有一个输入,用户输入一个有效的网址。我需要单独获取URL,查询字符串(如果用户输入)和哈希(如果用户输入)。

到目前为止,我已经这样做了:

  var url = input_value.split('?')[0]; //get url
  var qs = input_value.split('?')[1].split('#')[0]; //get query string value
  var hash = input_value.split('#')[1]; //get hash value

但是,如果用户没有输入任何查询字符串,只是哈希值,则会引发未定义的错误。

http://test.com/some-thing/ref?v1=obscurecode&something&else#1234

因此,对于网址,它应该返回:http://test.com/some-thing/ref

查询字符串:?v1=obscurecode&something&else

哈希:#1234

1 个答案:

答案 0 :(得分:-1)

最好使用trycatch阻止。

try {
  var url = input_value.split('?')[0]; //get url
} catch (e) {
  var url = input_value;
}
try {
  var qs = input_value.split('?')[1].split('#')[0]; //get query string value
} catch (e) {
  var qs = "";
}
try {
  var hash = input_value.split('#')[1]; //get hash value
} catch (e) {
  var hash = "";
}

这将帮助您避免任何未捕获的类型错误。我使用了url = input_value,以防没有查询字符串。

控制台输出

console

这适用于您的用例:

use case