【发布时间】:2019-02-15 05:39:36
【问题描述】:
我有一个 API 调用,它作为对象的一部分返回如下内容:
"aaps":"1.50U\/h 0.36U(0.18|0.18) -1.07 0g"
我想从中提取两个子字符串,但子字符串的大小会有所不同。例如,我希望一个变量是 second "U" 之前的数字的子字符串。但该值将介于 0.00 和 100.99 之间。所以我不能指望使用indexof()。
我还希望另一个变量是“g”之前的数字的子字符串。该变量的值介于 0 到 250 之间,因此子字符串的字符数会有所不同。
【问题讨论】:
-
您可以尝试 jsonfy 字符串...然后遍历生成的 JSON
-
为什么不能使用
indexOf()?该值将根据字符串中字符的索引而改变。所以"1.50U".indexOf("U") === 4和"100.99U".indexOf("U") === 6...要获得价值,您只需执行aaps.substring(0, aaps.indexOf("U"))。 -
indexOf仍然可以工作。更清洁的方法是使用正则表达式 -
拆分字符串,如果格式相同,您可以获取删除最后一个字母的数字,例如:string.split()[1].split('U')[0] 和 string .split()[3].split('g')[0].
-
对不起,我忘了澄清,我想要第二个“U”之前的数字。所以“0.36”数字。 indexof 不起作用,因为它会返回第一个“U”之前的数字,不是吗?
标签: javascript string substring indexof