“1 2 3“.replace(/\d/g, parseInt)

答案:"1 NaN 3"

解析:replace() 回调函数的四个参数:

1、匹配项

2、与模式中的子表达式匹配的字符串

3、出现的位置

4、stringObject 本身 。

如果没有与子表达式匹配的项,第二参数为出现的位置.

所以第一个参数是匹配项,第二个参数是位置

parseInt('1', 0)

parseInt('2', 2) //2进制中不可能有2

parseInt('3', 4)

 

这算对吗 print(soup.prettify()[:2000]) # 打印前2000字符 0秒 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> <meta content="图书畅销榜,畅销书推荐,畅销书排行榜,畅销书排行榜" name="keywords"/> <meta content="当当最新畅销书排行榜-畅销书推荐,提供真实、权威、可信的图书畅销榜数据,查看2014畅销书排行榜,就上DangDang.COM。" name="description"/> <title> 图书畅销榜-近30日畅销书排行榜-当当畅销图书排行榜 </title> <script src="/books/js/jquery-1.4.2.min.js" type="text/javascript"> </script> <script src="/books/js/common.js" type="text/javascript"> </script> <script src="/books/js/popwin.js" type="text/javascript"> </script> <script src="http://static.ddimg.cn/js/login/LoginWindow.js" type="text/javascript"> </script> <link href="/books/css/bang_list.css" rel="stylesheet" type="text/css"/> <script src="/books/js/DD_belatedPNG_0.0.8a.js" type="text/javascript"> </script> <script type="text/javascript"> DD_belatedPNG.fix(&#39;.level,.level span&#39;); </script> <script src="http://a.dangdang.com/smart.js" type="text/javascript"> </script> </head> <body> <!-- 页头 begin --> <script> var accessbilityUrl = "//static.dangdang.com/fed/accessbility/1.0.0/accessbility.min.js";var accessbilitySwitch = "1"; </script> <script async="" defer="" src="//static.dangdang.com/js/header2012/pagetop_accessbility.min.js?v=20230626" type="text/javascript"> </script> <script type="text/javascript"> eval(function(p,a,c,k,e,r){e=function(c){return(c<a?&#39;&#39;:e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!&#39;&#39;.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return&#39;\\w+&#39;};c=1};while(c--)if(k[c])p=p.replace(new RegExp(&#39;\\b&#39;+e(c)+&#39;\\b&#39;,&#39;g&#39;),k[c]);return p}(&#39;r(1c 1H=="O"){o U;(p(){o k={1d:"1I.1J",1e:\&#39;1K\&#39;,D:\&#39;O\&#39;,1f:\&#39;O\&#39;};k.1g={1h:0,1L:"",F:8,1i:p(a){o b=l.1h?"1M":"1N";o c="";P(o i=0;i<a.B*4;i++){c+=b.1j((a[i>>2]>>((i%4)*8+4))&1k)+b.1j((a[i>>
06-10
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1.0, user-scalable=0,shrink-to-fit=no, viewport-fit=cover"> <meta name="keywords" content="蓝桥到家"> <meta name="description" itemprop="description" content="生鲜副食、饮品乳品、鲜花蛋糕"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>确认订单</title> <link rel="stylesheet" type="text/css" href="../styles/reset.css" /> <link rel="stylesheet" type="text/css" href="../styles/iconfont/iconfont.css" /> <link rel="stylesheet" type="text/css" href="../styles/order-confirm.css" /> <link rel="stylesheet" type="text/css" href="../styles/common.css" /> <script type="text/javascript" src="../js/common.js"></script> <script type="text/javascript" src="../js/zepto.min.js"></script> <script type="text/javascript" src="../js/data.js"></script> </head> <body> <div class="wrap"> <!-- 头部 start --> <header class="header_bar"> <a href="shopcart.html"> <div class="header_bar_back"></div> </a> <div class="header_bar_title">确认订单</div> </header> <!-- 头部 end --> <div class="container"> <!-- 订单信息 start --> <div class="order-address"> <h5>配送至:</h5> <a id="addressSelectLink" href="#"> <div class="address" id="selectedAddress"> <!-- 地址信息将通过JavaScript动态生成 --> </div> </a> </div> <h3 id="storeName">商家名称</h3> <ul class="order-detail" id="orderItems"> <!-- 订单商品将通过JavaScript动态生成 --> </ul> <div class="order-cost"> <p>配送费</p> <p id="deliveryFee">¥0</p> </div> <!-- 合计部分 --> <div class="total"> <div class="total-left" id="totalPrice"> 总计:0 元 </div> <div class="total-right" id="paymentBtn"> 去支付 </div> </div> <!-- 订单信息 end --> </div> </div> <script> $(function() { // 检查用户是否已登录 if (!checkLogin()) return; // 获取店铺ID const urlParams = new URLSearchParams(window.location.search); const storeId = parseInt(urlParams.get(&#39;storeId&#39;) || &#39;0&#39;); if (storeId === 0) { alert(&#39;订单信息错误&#39;); window.location.href = &#39;shopcart.html&#39;; return; } // 获取店铺数据 const store = getStoreById(storeId); // 生鲜果蔬专区特殊处理 let storeName = &#39;&#39;; let deliveryFee = 0; if (storeId === 999) { // 生鲜果蔬专区 storeName = &#39;生鲜果蔬专区&#39;; deliveryFee = 5; // 设置配送费 } else if (!store) { alert(&#39;店铺不存在&#39;); window.location.href = &#39;shopcart.html&#39;; return; } else { storeName = store.name; deliveryFee = store.deliveryFee; } // 获取购物车中该店铺的商品 const storeItems = cart.getItemsByStore(storeId); if (storeItems.length === 0) { alert(&#39;购物车为空&#39;); if (storeId === 999) { window.location.href = &#39;fresh.html&#39;; } else { window.location.href = &#39;shop.html?id=&#39; + storeId; } return; } // 更新地址选择链接 $(&#39;#addressSelectLink&#39;).attr(&#39;href&#39;, &#39;address-select.html?from=order-confirm&storeId=&#39; + storeId); // 渲染收货地址 function renderSelectedAddress() { const selectedAddressEl = $(&#39;#selectedAddress&#39;); const defaultAddress = addressManager.getDefaultAddress(); // 调试信息 console.log(&#39;地址管理器:&#39;, addressManager); console.log(&#39;默认地址:&#39;, defaultAddress); if (defaultAddress) { selectedAddressEl.html(` <div class="address-content"> <div class="address-info"> <p class="address-detail">${defaultAddress.province}${defaultAddress.city}${defaultAddress.district}${defaultAddress.detail}</p> <p class="address-contact">${defaultAddress.name} ${defaultAddress.phone}</p> </div> <div class="address-arrow"> <span class="iconfont icon-youjiantou"></span> </div> </div> `); } else { selectedAddressEl.html(` <div class="address-content"> <div class="address-info"> <p class="address-placeholder">请选择收货地址</p> </div> <div class="address-arrow"> <span class="iconfont icon-youjiantou"></span> </div> </div> `); } } // 渲染店铺名称 $(&#39;#storeName&#39;).text(storeName); // 渲染配送费 $(&#39;#deliveryFee&#39;).text(&#39;¥&#39; + deliveryFee); // 渲染订单商品 let orderItemsHtml = &#39;&#39;; let subtotal = 0; storeItems.forEach(item => { const itemTotal = item.price * item.quantity; subtotal += itemTotal; orderItemsHtml += ` <li> <div class="goods"> <img src="${item.image.replace(&#39;images/&#39;, &#39;../images/&#39;)}"> <p>${item.name} x ${item.quantity}</p> </div> <p>¥${formatPrice(itemTotal)}</p> </li> `; }); $(&#39;#orderItems&#39;).html(orderItemsHtml); // 计算总价(商品小计 + 配送费) const total = subtotal + deliveryFee; $(&#39;#totalPrice&#39;).text(`总计:${formatPrice(total)} 元`); // 支付按钮点击事件 $(&#39;#paymentBtn&#39;).on(&#39;click&#39;, function() { // 检查是否有收货地址 const defaultAddress = addressManager.getDefaultAddress(); if (!defaultAddress) { alert(&#39;请先添加收货地址&#39;); window.location.href = &#39;address-select.html?from=order-confirm&storeId=&#39; + storeId; return; } // 保存订单信息到本地存储 const currentUser = JSON.parse(localStorage.getItem("currentUser")); const orderKey = `orders_${currentUser.phone}`; const existingOrders = JSON.parse(localStorage.getItem(orderKey) || "[]"); const newOrder = { id: new Date().getTime(), storeId: storeId, storeName: storeName, items: storeItems, subtotal: subtotal, deliveryFee: deliveryFee, total: total, status: "待支付", createTime: new Date().toLocaleString(), address: defaultAddress }; existingOrders.push(newOrder); localStorage.setItem(orderKey, JSON.stringify(existingOrders)); // 清空该店铺的购物车 storeItems.forEach(item => { cart.updateQuantity(storeId, item.productId, 0); }); // 跳转到支付页面 window.location.href = &#39;payment.html?orderId=&#39; + newOrder.id; }); // 初始化页面 renderSelectedAddress(); }); </script> <style> </style> </body> </html>按部分解释代码 一部分一部分 每一行解释 并解释他的设计逻辑
最新发布
07-17
parseLyrics(lyric) { // 替换转义换行符 lyric = lyric.replace(/\\n/g, &#39;\n&#39;); const lines = lyric.split(&#39;\n&#39;); let accumulatedOffset = 0; // 累计偏移量 this.lyricMap = lines.map(line => { const timeMatch = line.match(/\[(\d{2}):(\d{2})\.(\d{2})\]/); if (timeMatch) { const minutes = parseInt(timeMatch[1], 10); const seconds = parseInt(timeMatch[2], 10); const milliseconds = parseInt(timeMatch[3], 10); const time = (minutes * 60 + seconds) * 1000 + milliseconds; const text = line.replace(/\[\d{2}:\d{2}\.\d{2}\]/, &#39;&#39;).trim(); // 计算文本宽度和行数 const lineCount = this.calculateLineCount(text); // 使用新的计算函数 // 计算当前歌词的额外偏移 const currentExtraOffset = (lineCount - 1) * 33; // 存储累计偏移量 const offsetInfo = { time, text, lineCount, currentExtraOffset, accumulatedOffset: accumulatedOffset }; // 更新累计偏移量(影响下一句歌词) accumulatedOffset += currentExtraOffset; return offsetInfo; } return null; }).filter(line => line !== null); }, // 新增一个计算行数的方法,处理长文本或英文单词 calculateLineCount(text) { const maxWidth = 285; const ctx = uni.createCanvasContext(&#39;measureCanvas&#39;, this); ctx.setFontSize(22); ctx.font = &#39;bold 22px sans-serif&#39;; // 复用字符宽度缓存 const charCache = new Map(); // 更高效的分行处理(兼容所有换行符) const lines = text.split(/\r?\n/g); let totalLines = 0; for (let i = 0; i < lines.length; i++) { const line = lines[i]; // 处理空行 if (!line.length) { totalLines++; continue; } // 快速验证整行宽度 const fullWidth = ctx.measureText(line).width; if (fullWidth <= maxWidth) { totalLines++; continue; }
03-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值