『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 8088|回复: 9

[流程系列] 请教怎么提取字符串中的数字?

[复制链接]

42

主题

524

帖子

2975

积分

金牌会员

Rank: 6Rank: 6

积分
2975
金钱
2451
HASS币
10
发表于 2021-7-13 21:13:58 | 显示全部楼层 |阅读模式
抓取到msg.payload[19]的数值为“¥65”,如何把其中的65提取出来作为msg.payload输出呢?谢谢!
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12115
金钱
9096
HASS币
460

教程狂人突出贡献

发表于 2021-7-13 21:43:19 来自手机 | 显示全部楼层
如果数字前面的字符是固定的或者长度是固定的就最好办了,直接截取字符串即可。否则就稍微麻烦一些,正则表达式
回复

使用道具 举报

42

主题

524

帖子

2975

积分

金牌会员

Rank: 6Rank: 6

积分
2975
金钱
2451
HASS币
10
 楼主| 发表于 2021-7-13 23:03:18 来自手机 | 显示全部楼层
XCray 发表于 2021-7-13 21:43
如果数字前面的字符是固定的或者长度是固定的就最好办了,直接截取字符串即可。否则就稍微麻烦一些,正则表 ...

就是一个符号¥,想要的自动化是根据后面的数值来的,所以想把¥给去掉。网上没找着“葫芦”,所以画不出来“瓢”。。。
回复

使用道具 举报

40

主题

3056

帖子

1万

积分

超级版主

Nero

Rank: 8Rank: 8

积分
11149
金钱
8042
HASS币
182
发表于 2021-7-14 08:44:40 | 显示全部楼层
本帖最后由 neroxps 于 2021-7-14 09:20 编辑

msg.payload=msg.payload[19].match(/¥(.*)/)[1];
下面是进阶版,兼容 msg.payload = "adfasdf¥123.23sadfasdf" 情况
msg.payload=msg.payload[19].match(/¥(\d+[\.]?\d+)/)[1];
Nero
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12115
金钱
9096
HASS币
460

教程狂人突出贡献

发表于 2021-7-14 08:54:39 | 显示全部楼层
yinghu183 发表于 2021-7-13 23:03
就是一个符号¥,想要的自动化是根据后面的数值来的,所以想把¥给去掉。网上没找着“葫芦”,所以画不出 ...

你太懒了!

网上的教程文章示例多如牛毛,怎么可能找不到!

var pl=msg.payload;
msg.payload=pl.substring(1);
return msg;
回复

使用道具 举报

42

主题

524

帖子

2975

积分

金牌会员

Rank: 6Rank: 6

积分
2975
金钱
2451
HASS币
10
 楼主| 发表于 2021-7-14 10:15:31 来自手机 | 显示全部楼层
neroxps 发表于 2021-7-14 08:44
msg.payload=msg.payload[19].match(/¥(.*)/)[1];
下面是进阶版,兼容 msg.payload = "adfasdf¥123.23sad ...

谢谢大佬
回复

使用道具 举报

42

主题

524

帖子

2975

积分

金牌会员

Rank: 6Rank: 6

积分
2975
金钱
2451
HASS币
10
 楼主| 发表于 2021-7-14 10:28:50 来自手机 | 显示全部楼层
XCray 发表于 2021-7-14 08:54
你太懒了!

网上的教程文章示例多如牛毛,怎么可能找不到!

我真不是懒。对于纯外行来说,可能连搜索的关键词都写不准确。比如“字符串”啥意思我去年还不知道,今年我会搜索“怎么从字符串中提取数字”,这句话了。然后出来一堆,我保证我翻了几页没有你写的那几句,我找到了一个什么function getNum什么的,瞎试了半天无果才来问的。
可能你觉得啥也不懂还玩啥,心里喜欢没办法。为啥不学呢?年纪大了很难学会是真的。但从进论坛以来也多少学会一些了哈哈。
总之感谢各位热心人吧。不管在内行看来多幼稚的问题,问还是要问的,总有热心的朋友答上那么一两句不是么
回复

使用道具 举报

11

主题

313

帖子

1324

积分

金牌会员

Rank: 6Rank: 6

积分
1324
金钱
1011
HASS币
10
发表于 2021-7-15 00:20:23 | 显示全部楼层
XCray 发表于 2021-7-14 08:54
你太懒了!

网上的教程文章示例多如牛毛,怎么可能找不到!

何不食肉糜
回复

使用道具 举报

105

主题

2954

帖子

1万

积分

超级版主

智能家居&单板滑雪痴迷爱好者

Rank: 8Rank: 8

积分
12115
金钱
9096
HASS币
460

教程狂人突出贡献

发表于 2021-7-15 06:56:27 来自手机 | 显示全部楼层
本帖最后由 XCray 于 2021-7-15 08:51 编辑
firelion 发表于 2021-7-15 00:20
何不食肉糜

哈哈哈哈!
我总觉得既然已经开始玩ha,肯定是已经具备了一定的计算机、网络、编程的基本知识和基本技能。对于任何一种编程语言,字符串截取都应该算最基础的了吧?哪怕记不住具体的函数名称和用法,百度一下也就能找到很多有用的文章。
当年晋惠帝说那句话时,天下食物确实是短缺的,而我们今天享有的信息和知识却绝非短缺,而是爆炸。
回复

使用道具 举报

1

主题

38

帖子

449

积分

中级会员

Rank: 3Rank: 3

积分
449
金钱
411
HASS币
0
发表于 2021-7-18 14:46:14 | 显示全部楼层
XCray 发表于 2021-7-15 06:56
哈哈哈哈!
我总觉得既然已经开始玩ha,肯定是已经具备了一定的计算机、网络、编程的基本知识和基本技能。 ...

你忽略了大批没用前置知识就冲进来玩的小白。
你已经不知不觉积累了不少知识,很多在你看来理所当然会的东西,实际上有很多人不会
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-12-22 17:13 , Processed in 0.053307 second(s), 32 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表