首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

我尝试用.substring抓取2个数字或1,但是当我使用变量价格时,为什么只读一个?

在使用 .substring() 方法时,如果你希望抓取两个数字或一个数字,但实际结果只读取了一个数字,可能是由于以下几个原因:

基础概念

.substring() 方法用于提取字符串中介于两个指定下标之间的字符。其基本语法如下:

代码语言:txt
复制
str.substring(startIndex, endIndex);
  • startIndex:必需,表示要提取的第一个字符的索引。
  • endIndex:可选,表示要提取的最后一个字符的索引。如果省略,则提取到字符串末尾。

可能的原因

  1. 变量类型问题:确保 price 变量是一个字符串类型,而不是数字类型。
  2. 索引计算错误:可能你在计算起始和结束索引时出现了错误。
  3. 边界条件:如果 price 变量的长度小于你预期的两个字符,那么 .substring() 方法只会提取到一个字符。

解决方法

假设你想从一个字符串中提取前两个数字,可以按照以下步骤进行:

  1. 确保变量是字符串类型
  2. 确保变量是字符串类型
  3. 正确计算索引
  4. 正确计算索引
  5. 处理边界条件: 如果 price 的长度可能小于两个字符,可以先检查长度:
  6. 处理边界条件: 如果 price 的长度可能小于两个字符,可以先检查长度:

示例代码

以下是一个完整的示例,展示了如何正确提取字符串中的前两个数字或一个数字:

代码语言:txt
复制
function extractFirstTwoDigits(price) {
    // 确保 price 是字符串类型
    price = String(price);
    
    // 检查长度并提取字符
    if (price.length >= 2) {
        return price.substring(0, 2);
    } else {
        return price;
    }
}

// 测试示例
console.log(extractFirstTwoDigits("12345")); // 输出 "12"
console.log(extractFirstTwoDigits("1"));    // 输出 "1"
console.log(extractFirstTwoDigits("99"));   // 输出 "99"

通过这种方式,你可以确保无论 price 变量的长度如何,都能正确提取前两个数字或一个数字。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

要找房,先用Python做个爬虫看看

当一切完成时,我想做到两件事: 从葡萄牙(我居住的地方)一个主要房地产网站上搜集所有的搜索结果,建立一个数据库 使用数据库执行一些EDA,用来寻找估值偏低的房产 我将要抓取的网站是Sapo(葡萄牙历史最悠久...让我们试着得到上图看到的价格。我将首先定义first变量,它将是我们的第一个房子(从house_containers变量中获得)的结构。...价格在第3个标签中,即为索引中的位置2 所以价格是很容易得到的,但在文本中有一些特殊的字符。解决这个问题的一个简单方法是用空字符替换特殊字符。当我将字符串转换为整数时,我会对其进行分割。 ?...在最后一步中,itertools帮助我从提取第二步中的数字。我们刚刚抓取到了我们的第一个价格!我们想要得到的其他字段是:标题、大小、发布日期、位置、状态、简短描述、房产链接和缩略图链接。...最后这两个字段不是必须的,但是我希望保留房产和图像的链接,因为我正在考虑为特定房产构建预警系统或跟踪器。也许这是一个新的项目,所以我把它留在这里只是为了示例的多样性。

1.4K30

利用蓝牙功能两秒内攻击解锁Tapplock智能挂锁

安全测试 以上各路安全测试也激起了我的好奇心,那就买一把Tapplock智能挂锁来实际测测吧,80欧元的价格付款,14小时之后,一款Tapplock智能挂锁就送到我家了。...原来,在后盖内还有一个伸到后盖项部的弹簧梢,是专门为了防止后盖的松动或转动而设计的。这个弹簧梢有可能被破坏,但是只靠一个相机粘附底座可能是不行的。...从以上网络分析中可看到,当我每次用BLE连接 Tapplock 时,就会有一个 “随机” 字符串被发送给Tapplock端,这些字符串貌似是与 Tapplock 进行交流的命令。 ?...由此,我把该测试用锁与其他用户进行了共享,然后抓取其中的BLE通信数据发现,这种用户间共享Tapplock的做法,完全与正常单一用户对Tapplock的控制一样,也就是,即使你撤销了其他共享用户的解锁权限...但是Tapplock的咬合口相对比较细薄,且离压力的接合点有些远。 ? 另外,用一个12寸的螺栓切割器,不到10秒就能把Tapplock锁栓搞定: ?

99940
  • 如何从头开始构建数据科学项目

    笔者邀请您,先思考: 1 如何做好数据科学项目?有哪些注意点? 使用柏林租赁价格分析的实例,包括如何从网络中抽取数据并进行清洗,获得更深入的见解,以及使用外部API设计特征等等。...当我在柏林搜索租房价格的信息时,我发现了很多可视化的东西,但是它们都是旧的,或者没有具体的年份。 对于一些统计数据,他们甚至有一条告示说,这个价格只适用于一套50平方米的两室公寓,没有家具。...我们将解释为什么这很重要 数据清洗 一旦您开始获取数据,尽早查看它以发现任何可能的问题是非常重要的。 在web抓取租赁数据时,我包含了一些小检查,比如所有特征缺失值的数量。...例如,如果您web抓取,您可能会错过一些重要的字段。如果您在将数据保存到文件中时使用逗号分隔符,并且其中一个字段还包含逗号,那么您的文件可能无法很好地分隔。 ?...如果您使用的特征非常缺乏信息,则任何算法都会产生错误的预测。 凭借非常强大的特征,即使是非常简单的算法也能产生相当不错的结果。 在租赁价格项目中,价格是一个连续变量,因此这是一个典型的回归问题。

    81220

    通过案例带你轻松玩转JMeter连载(25)

    Equals和Substring模式:使用文本字符串,不支持正则表达式,区分大小写。 Contains和Substring模式:是包含关系,即部分匹配。...Ø Parameters:整个参数字符串作为一个变量Parameters。 Ø bsh.args:用空格分隔的字符串被保存到变量数组bsh.args。...Ø vars:即JMeterVariables,用于操作JMeter的变量,这个变量实际引用了JMeter线程中的局部变量容器(本质上是一个Map),它是测试用例与BeanShell交互的桥梁,常用方法如下...如果想使用数字,数字等类型,方法是做类型转换。例如。...vars有的put、get方式,props都有;操作JMeter属性,该变量引用了JMeter的配置信息,可以获取JMeter的属性,它的使用方法与vars类似,但是只能put进去String类型的值,

    59720

    简易数据分析 17 | Web Scraper 高级用法——利用正则表达式筛选文本信息

    比如说要抓取 电影的评价人数,网页中抓到的原始数据是 1926853人评价,但是我们期望只抓取数字,把 人评价 这三个汉字丢掉。 ?...1.正则表达式初尝 我们先用 web scraper 初步尝试一下正则表达式。这里还是用豆瓣电影做例子,我们先选择电影的评价人数,预览图是这个样子的: ?...正则表达式里都有匹配这些字符的方法,下面我用一个表格列举出来: 字符簇 匹配 [0-9] 匹配所有的数字 [1-9] 匹配 1 到 9 [a-z] 匹配所有的小写字母 [A-Z] 匹配所有的大写字母 sky...匹配前面的子表达式零次或一次,等价于 {0,1} z,zo,zoo zo?...特殊字符:¥ 首先我们匹配小数点前的数字 12,因为价格什么数字可以能出现,而且位数一般都大于 1 位,所以我们用 [0-9]+ 来匹配; 考虑到小数点「.」在正则表达式里有特殊含义,我们需要小数点前面加反斜杠

    1.6K60

    【Shell编程】快速入门变量、字符串、传递参数

    文章目录 1.1 简介 shell 解释器 1.2快速入门 1 编写脚本 2 执行shell脚本 1.3 shell变量 1 简介 2 使用变量 3 删除变量 4 只读变量 1.4 字符串 1 单引号.../hello.sh hello world 同时,变量名的命名须遵循如下规则: 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。...3 删除变量 使用 unset 命令可以删除变量。语法: 变量被删除后不能再次使用。 unset 命令不能删除只读变量。 实例 以上实例执行将没有任何输出。...4 只读变量 使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。...n 代表一个数字, 1 为执行脚本的第一个参数, 2 为执行脚本的第二个参数,以此类推 …… 实例 以下实例我们向脚本传递三个参数,并分别输出,其中 $0 为执行的文件名: 1

    1.3K30

    用Python代码建个数据实验室,顺利入坑比特币

    8/22/2017修订说明-这部分的修改是为了在计算相关系数时使用每日回报率而不是价格的绝对值。 基于一个非稳态时间序列(例如原始的价格数据)直接计算可能会导致相关性系数的偏差。...系数接近1或-1,分别意味着这一序列是强正相关的,或逆相关的,相关系数趋近于0则说明相应对象并不相关,他们的波动是相互独立的。 为了更可视化的展示结果,我们创建了一个新的可视化的帮助函数。...为什么? 好问题!其实,我也不是很确定。。。 我的第一反应是,对冲基金最近开始公开在电子货币市场交易[1][2]。...这可能就是为什么XRP相比其他电子货币,与STR有更强相关性的原因。 快讯-我是Chipper的合作人之一。Chipper是一家使用Stella的非常早期的初创企业,旨在颠覆非洲的小额汇款行业。...利用数据训练一个预测性机器学习模型,来预测明日价格。如果你有更大的雄心壮志,你甚至可以考虑尝试用循环神经网络(RNN)进行上述训练。

    2K90

    用R语言对上海市链家二手房数据分析

    以此为基础进行推演,既然现在想住房子但是由于经济原因无法实现的人都在盼跌,那么我问你,如果房价是因为没人要买房所以下跌的话,那个时候房子已经没人要买了,你为什么还要买?...这些购房者其实内心都有一个信念——现在虽然还款压力大,但是我的收入是会增长的,等过几年,我的收入增加了,压力就不大了,如果那时房价再上涨,卖掉手上的房子,我就能再置换舒适点的房子了。...有人提出了一个结论:“我无法预言房价是涨是跌,但我能知道我什么时候该买房。那就是当你收入增速放缓并且未来可能不会有较高年增长率时,你就应该在自己能力范围内买房了。”...在此思考一下,一个房子应该值什么价?这个价值怎样衡量?最简单的,使用人民币衡量。为什么我国房地产在过去的十几年里如日中天?因为这十几年来国民的购买力增长着实可观。...不要赞赞自喜,我们说,使用线性回归是有假设前提的,即因变量满足正态或近似于正态分布,前面说过,房价明显在样本中是偏态的,并不服从正态分布,所以这里使用COX-BOX变换处理。

    2.7K91

    一名python学习者打开双11的正确姿势

    于是,我设想了这样一个方案来应对商家们的套路: 【初级版】 从关注的商品页面上找到价格,用 Python 脚本自动把价格抓下来。推荐使用 requests 库; ?...通常来说对方有这么几种手段: 校验你的请求头,明显的代码抓取会被屏蔽,也可能会记录你的 IP 或来源信息,限制你的请求频率。 这个只要把 header 信息伪装好点就不是事,必要时加上 cookie。...除此之外,一个小技巧就是,移动端网站往往反爬措施没有 PC 网页版那么严格,所以可以尝试用移动站来抓取。同样可以使用 Chrome 的开发者工具,模拟手机环境。 ?...那么在前面的基础上,升级一下: 【中级版】 选择移动端网站抓取,找到包含价格信息的请求; 请求时尽可能补全 header 信息; 轮换代理 IP; 难以提取信息的,尝试用 Selenium...我真正要说的是,如果你学了 Python,却不知道去哪里找项目练手进一步提高,为什么不从身边的需求出发,去开发一些工具,做一点数据的分析。你若完整实现了这样一个项目,去找一份开发工作绝对没有问题。

    20.4K70

    完美假期第一步:用Python寻找最便宜的航班!

    爬虫脚本 当我第一次开始做网络爬虫时,我对这块并不特别感兴趣。我本想用预测建模,财务分析和一些情绪分析来做更多的项目,但事实证明,弄明白如何构建第一个网络爬虫是很有趣的。...如果你是个爬虫新手,或者还不了解为什么有一些网站总会设置各种障碍来阻止网络抓取,那么在写第一行爬虫代码之前,请你先阅读了解一下谷歌“ 网络抓取礼仪 ”。...XPath的坑 目前为止,我们打开了一个浏览器窗口并获得了网址。接下来我会使用XPath或者CSS选择器来抓取价格等其他信息。...曾经我也只用XPath,当时我觉得没必要用CSS,但是现在看来最好结合着用。...当然,函数还是会返回一个名为flights_df 的DataFrame对象,有了它我们接下来就可以任意排序并视情况切片或合并。 变量名中带a的表示第一段行程,带b的表示第二段行程。

    2.3K50

    完美假期第一步:用Python寻找最便宜的航班!

    爬虫脚本 当我第一次开始做网络爬虫时,我对这块并不特别感兴趣。我本想用预测建模,财务分析和一些情绪分析来做更多的项目,但事实证明,弄明白如何构建第一个网络爬虫是很有趣的。...如果你是个爬虫新手,或者还不了解为什么有一些网站总会设置各种障碍来阻止网络抓取,那么在写第一行爬虫代码之前,请你先阅读了解一下谷歌“ 网络抓取礼仪 ”。...XPath的坑 目前为止,我们打开了一个浏览器窗口并获得了网址。接下来我会使用XPath或者CSS选择器来抓取价格等其他信息。...曾经我也只用XPath,当时我觉得没必要用CSS,但是现在看来最好结合着用。...当然,函数还是会返回一个名为flights_df 的DataFrame对象,有了它我们接下来就可以任意排序并视情况切片或合并。 变量名中带a的表示第一段行程,带b的表示第二段行程。

    1.9K40

    const关键字的秘密:为什么它不总是像你想象的那样

    (hi); // -> 5 有趣的是,当我使用const创建一个对象时,我可以自由地更改它: const person = { name: 'Hassan', }; person.name = 'Sujata...重新分配我们的标签 当我们使用 let 关键字创建一个变量时,我们能够更改该标签所引用的“事物”。 例如,我们可以将我们的 fruits 标签指向一个新值: 这被称为重新分配。...当我们使用 const 时,我们创建了一个不可摧毁的链接,将变量名和一段数据联系在一起。 然而,问题在于:我们仍然可以修改数据本身!只要标签保持完好无损。...当我们使用 const 创建一个常量时,我们可以百分之百地确定该变量永远不会被重新分配,但是在变异方面没有任何承诺。 const 并不完全阻止变异。...但是如果我们有一个“原始”数据类型,例如字符串、数字或布尔值,该怎么办呢? 以一个数字为例: let age = 36; age = 37; 我们应该如何解释这个?

    38520

    如何用Python抓取最便宜的机票信息(上)

    另一个scraper 当我第一次开始做一些web抓取时,我对这个主题不是特别感兴趣。但是我想说!...您可以随意将代码调整到另一个平台,欢迎您在评论部分与我们分享! 如果你刚接触网络抓取,或者你不知道为什么有些网站要花很长时间来阻止它,请在编写第一行代码之前帮你自己一个大忙。谷歌“网页抓取礼仪”。...每个Selenium项目都从一个WebDriver开始。我正在使用Chromedriver,但是还有其他的选择。PhantomJS或Firefox也很受欢迎。下载之后,把它放在一个文件夹里,就这样。...每个XPath都有它的陷阱 到目前为止,我们打开了一个窗口,得到了一个网站。为了开始获取价格和其他信息,我们必须使用XPath或CSS选择器。...我使用了一个简单的方法来分割它们,例如在第一个section_a_list和section_b_list变量中。

    3.8K20

    ipipgo、iproyal、Stormproxies大比拼:谁是你心目中的top静态住宅代理?

    图片 特点:1、支持无限并发会话,方便您进行大规模的网络抓取项目。2、平均成功率达到99.2%,使用代理轮换工具可控制会话,避免ip被封锁和CAPTCHA验证。...价格:套餐越大均价越低,很实惠且有1G试用套餐。...覆盖范围:选择一个覆盖地域范围广的代理服务商,以确保您能够轻松地获取全球范围内的数据。 稳定性:选择一个稳定可靠的代理服务商,以确保您的抓取任务不会受到中断或延迟。...安全性:选择一个安全的代理服务商,确保您的数据不会被泄露或用于不良用途。 价格:选择一个价格合理的代理服务商,确保您能够以经济实惠的价格获取所需的服务。...免费试用:如果有提供免费试用的选项,建议先尝试一下,以确定代理服务商是否适合自己的需求,像Stormproxies就有1G试用套餐。

    1.1K10

    8 个用于业余项目的优秀 Python

    对绝大多数人来说的确是这样的,但是,还有一件事情使得我们一直停留在 Python 的世界里,不愿离开,那就是我们可以很容易地利用一顿午餐或晚上几个小时的时间,把一个想法快速地实现出来。...当我们需要把非结构化或弱结构化的 HTML 转换为结构化数据的时候,就需要使用 Beautiful Soup 。用它来处理 XML 数据也是一个很好的选择,否则 XML 的可读性或许会很差。...当我们想要抓取 HTML 网页或连接 API 的时候,都离不开 Requests 库。同时,它也有很好的文档。...编写命令行工具:Click 当需要写一个简单的 Python 脚本作为命令行工具的时候,Click 是我最喜欢用的库。它的 API 非常直观,并且在实现时经过了深思熟虑,我们只需要记住很少的几个模式。...和插件打交道:Pluggy Pluggy 库相对较新,但是如果你想添加一个插件系统到现有应用中,那么使用 Pluggy 是最好也是最简单的方式。

    59030

    手把手| 用Python代码建个数据实验室,顺利入坑比特币

    8/22/2017修订说明-这部分的修改是为了在计算相关系数时使用每日回报率而不是价格的绝对值。 基于一个非稳态时间序列(例如原始的价格数据)直接计算可能会导致相关性系数的偏差。...系数接近1或-1,分别意味着这一序列是强正相关的,或逆相关的,相关系数趋近于0则说明相应对象并不相关,他们的波动是相互独立的。 为了更可视化的展示结果,我们创建了一个新的可视化的帮助函数。...为什么? 好问题!其实,我也不是很确定。。。 我的第一反应是,对冲基金最近开始公开在电子货币市场交易[1][2]。...这可能就是为什么XRP相比其他电子货币,与STR有更强相关性的原因。 快讯-我是Chipper的合作人之一。Chipper是一家使用Stella的非常早期的初创企业,旨在颠覆非洲的小额汇款行业。...利用数据训练一个预测性机器学习模型,来预测明日价格。如果你有更大的雄心壮志,你甚至可以考虑尝试用循环神经网络(RNN)进行上述训练。

    1.5K30

    干货 | 魔镜魔镜告诉我,数字货币未来价格可以预测吗?

    炒币人士通常会为了一个传言而买入卖出,自然,也会有人尝试用机器学习来对数字货币的价格变化进行分析,来找出影响数字货币价格变动的因素。...这就是为什么我认为当比特币价格飙升时,所有其他数字货币都会随之上升,反之亦然。以下图表是比特币(绿色)和以太坊(蓝色)的价格变化曲线。 ? 正如你所见,这当中的对应关系看起来相当准确。...但是,如果没有统计方法上的证明,我们不会急于下结论。稍后,我们将更多地讨论使用格兰杰因果检验来确定一个「协整关系对」。 因素2:很明显,法律因素或其他足以影响游戏规则的技术手段也在影响数字货币的价格。...PACF 在滞后之后有一个截止值,这将是我们用于 ARIMAX 模型的参数。 ARIMAX:使用AR 1和3个外生变量。下图是与实际值比较的拟合值。 用拟合出的模型得出的 XEM 价格预测。...如果使用付费的 Twitter 数据或者使用不同的机器学习模型可能会显著提高其性能,目前我会考虑提出一个能用于自动交易的交易信号算法,但摸摸我的钱包,我不禁流下了悲伤的泪水。

    1.6K70

    前端报错 TypeError: a.slice is not a function 的原因与解决方案

    错误产生的原因首先,让我们来了解一下 slice 方法的作用和使用方式。slice() 方法可以从一个数组或字符串中提取出指定部分,然后返回一个新的数组或字符串,而不会改变原来的数组或字符串。...当省略结束索引时,将从起始索引处截取到末尾。然而,在报错信息中,提示 a.slice is not a function。这意味着 a 这个变量并没有 slice 方法。那么,为什么会出现这个错误呢?...例如,如果我们期望 a 是一个数组,但我们却将一个数字赋值给了 a,那么 a 就变成了一个数字类型的变量,而数字类型并没有 slice 方法。...变量未定义或为空当我们尝试在一个未定义或为空的变量上调用 slice 方法时,同样会导致 TypeError: a.slice is not a function 的错误。...容错处理当我们无法确保变量 a 的数据类型符合预期,或者无法避免在不支持 slice 方法的数据类型上调用 slice 方法时,我们可以进行容错处理,避免程序崩溃并提供更好的用户体验。

    4.6K10
    领券