作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
代码:
controller.hears([map (.*) (.*) into (.*)){
var value = message.match[1];
var source = message.match[2];
var dest = message.match[3]; }
当输入是将 12 克映射到千克
时它工作正常但是当输入是 将 12 平方米映射到平方厘米
时输出是value = 12 平方,source= 米,dest = 平方厘米
如何修改代码,使值字段只接受数字,以便平方米转到源字段
最佳答案
你可以使用
map (\d+) (.*) into (.*)
参见 regex demo
第一个捕获组现在是 (\d+)
并且只会捕获一个或多个数字。
您还可以使用 \s+
在值之间匹配 1+ 个空格(因此,制表符和其他空格也将被匹配,出现 1 次或多次):
map\s+(\d+)\s+(.*?)\s+into\s+(.*)
参见 this regex demo .
详情
map
- map
子串\s+
- 1+ 个空格(\d+)
- 第 1 组:一个或多个数字(.*?)
- 第 2 组:除换行符以外的任何 0+ 个字符,尽可能少,\s+
- 1+ 个空格into
- into
子串\s+
- 1+ 个空格(.*)
- 第 3 组:除换行符以外的任何 0+ 个字符,尽可能多。关于javascript - 如何从 Botkit hears 方法中接受多个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51688652/
我是一名优秀的程序员,十分优秀!