我们说我有一个字符串*White 4,5,6 LOTE Jr. Service Learning Kick-Off (2017-10-6)
并且想要找到与正则表达式\d,\d,\d|,\d
匹配的子字符串,对应于由逗号分隔的3或4个数字组,如果正则表达式不存在,则返回空字符串。我怎么能这样做?
答案 0 :(得分:2)
let str = "*White 4,5,6 LOTE Jr. Service Learning Kick-Off (2017-10-6)";
let re = /\d,\d,\d(?:,\d)?/;
let [numbers] = str.match(re) || [''];
console.log(numbers);
如果找不到该模式,
match
将返回null
; || ''
会将null
变为空字符串。
请注意,我更改了您的模式,因为您的模式是“用逗号分隔的三位数字 - 或者逗号和数字”。
如果您的文字实际上是指数字而不是数字,那么请使用/\d+,\d+,\d+(?:,\d+)?/
作为整数;如果您需要浮点数或复数,请明确询问(它们更复杂)。