You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

原生JS中如何截取字符串中的数字作为API请求参数

实现方案

要从目标字符串中提取站点编号数字,最直接的方式是利用正则表达式匹配符合格式的数字片段,以下是具体实现示例:

场景1:数字固定被- 数字 -包裹(如示例中的格式)

这种情况下可以精准匹配数字前后的分隔符,确保提取的是目标站点编号:

// 假设已获取下拉框选中的文本
const selectedText = "река Чепеларска - гр. Асеновград + Chepinska - 10084 - HPoint-Water level";
const dataAPI = { nameStation: '', nameStationNumber: '', dateStation: '', dataHours: '' };

// 用正则匹配"- 数字 -"格式的内容
const numberMatch = selectedText.match(/- (\d+) -/);
if (numberMatch) {
  // 提取匹配到的数字,存入dataAPI
  dataAPI.nameStationNumber = numberMatch[1];
} else {
  // 未匹配到的 fallback 处理
  dataAPI.nameStationNumber = '';
}

console.log(dataAPI.nameStationNumber); // 输出:10084

场景2:字符串中存在多个数字,需提取唯一长数字串

如果字符串里有其他零散数字,但站点编号是唯一的长数字(比如示例中的5位),可以提取所有数字串后筛选:

const selectedText = "река Чепеларска - гр. Асеновград 2024 + Chepinska - 10084 - HPoint-Water level";
const dataAPI = { nameStation: '', nameStationNumber: '', dateStation: '', dataHours: '' };

// 提取所有数字串
const allNumbers = selectedText.match(/\d+/g);
if (allNumbers) {
  // 筛选出长度为5的数字(可根据实际编号长度调整)
  dataAPI.nameStationNumber = allNumbers.find(num => num.length === 5) || allNumbers[0];
} else {
  dataAPI.nameStationNumber = '';
}

console.log(dataAPI.nameStationNumber); // 输出:10084

注意事项

  • 若下拉框的文本获取方式不同,可调整selectedText的赋值逻辑,比如通过下拉框的value属性或其他DOM方法获取。
  • 需根据实际业务场景调整正则规则,确保匹配的准确性。

内容的提问来源于stack exchange,提问作者Ben Johnson

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 14:02:29