获取地址url中的query参数指定参数方法

获取地址url中的query参数指定参数方法

方案一:(兼容性最好,但是有点长)

	function getParam(name) {
      //先获取#后面的参数
      var getValue = function(name, str) {
        //获取参数name的值
        var reg = new RegExp("(^|!|&|\\?)" + name + "=([^&]*)(&|$)");
        //再获取?后面的参数
        var r = str.match(reg);
        if (r != null) {
          try {
            return decodeURIComponent(r[2]);
          } catch (e) {
            console.log(e + "r[2]:" + r[2]);
            return null;
          }
        }
        return null;
      };
      var str = document.location.hash.substr(2);
      var value = getValue(name, str);
      if (value == null) {
        str = document.location.search.substr(1);
        value = getValue(name, str);
      }
      return value;
    }

方案二:有兼容性(支持es6 的map就可以)

function getParams(key){
    var ops = {};
	window.location.href.split('?')[1].split('&').map(i => ops[(i.split('=')[0])] = i.split('=')[1]);
    return ops[key]
}

方案三:有兼容性(支持es6就可以)

  • ts不可用,需要改下return那行
  • ?. 表示为true就继续往后执行链式
function getParams(key){
    var str = window.location.href.split('?')[1].split('&').filter(i => i.startsWith(key+'='));
    return str?.[0]?.split('=')[1]
}

基本上主流浏览器都没问题,一般我用万能的第一种,但是有些长

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编写自动抢票算法需要考虑以下几个方面: 1. 登录:一般需要登录才能进行购票。可以使用模拟登录或者 API 登录方式进行实现。 2. 查询:需要查询余票信息,以便判断是否有余票。 3. 下单:如果有余票,需要进行下单操作。 4. 支付:下单后需要进行支付操作。 5. 定时刷新:需要定时刷新余票信息,以便及时进行下单。 下面是一个简单的 Java 代码框架,用于实现上述自动抢票算法: ``` public class GrabTicket { private static final String LOGIN_URL = "http://login_url"; private static final String QUERY_URL = "http://query_url"; private static final String ORDER_URL = "http://order_url"; private static final String PAY_URL = "http://pay_url"; private static final String USERNAME = "username"; private static final String PASSWORD = "password"; private static final int REFRESH_INTERVAL = 5000; // 刷新间隔时间,单位为毫秒 public static void main(String[] args) { // 模拟登录 login(USERNAME, PASSWORD); // 查询余票 while (true) { String result = queryTicket(QUERY_URL); if (hasTicket(result)) { // 下单 String orderId = order(ORDER_URL); // 支付 pay(PAY_URL, orderId); break; } try { Thread.sleep(REFRESH_INTERVAL); } catch (InterruptedException e) { e.printStackTrace(); } } } private static void login(String username, String password) { // 模拟登录操作 } private static String queryTicket(String queryUrl) { // 查询余票信息 return null; } private static boolean hasTicket(String result) { // 判断是否有余票 return false; } private static String order(String orderUrl) { // 下单操作 return null; } private static void pay(String payUrl, String orderId) { // 支付操作 } } ``` 需要注意的是,抢票算法需要遵守相关的法律法规和平台规则,不得进行恶意刷票等行为。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值