我真的很难使用Regex从字符串中提取两个数字。数字可以是正数,负数或0.我对Regex的经验非常有限。
字符串的格式类似于:
"rotateX(-90deg) rotateY(-90deg)"
我最好的尝试如下。第一种方法得到了第一个整数,但没有得到+ / - 符号:
var rx = string.replace( /(^.+\D)(\d+)(\D.+$)/i,'$2')
而且,以下似乎让我成为第二个,可能作为数组中的元素,但也没有得到+/-符号:
var ry = string.match(/(\d+)/i);
答案 0 :(得分:4)
您可以查找[+或 - 符号],然后查找[一个或多个数字],如下所示:
"rotateX(-90deg) rotateY(-90deg)".match(/([+-]?\d+)/g); // ["-90", "-90"]
它只返回所有匹配项的数组,您可以使用.length
检查其长度,以确保其中包含2个内容,然后使用[0]
和[1]
访问它们。