Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 字符串中的第一个和最后一个数字?_Javascript_Regex_Html - Fatal编程技术网

Javascript 字符串中的第一个和最后一个数字?

Javascript 字符串中的第一个和最后一个数字?,javascript,regex,html,Javascript,Regex,Html,我真的很难用正则表达式从字符串中提取两个数字。数字可以是正数、负数或0。我对正则表达式的经验非常有限 字符串的格式始终类似于: "rotateX(-90deg) rotateY(-90deg)" 我最好的尝试如下。第一种方法得到第一个整数,但没有得到+/-符号: var rx = string.replace( /(^.+\D)(\d+)(\D.+$)/i,'$2') 而且,以下内容似乎让我得到了第二个,可能是数组中的一个元素,但也没有得到+/-符号: var ry = string.mat

我真的很难用正则表达式从字符串中提取两个数字。数字可以是正数、负数或0。我对正则表达式的经验非常有限

字符串的格式始终类似于:

"rotateX(-90deg) rotateY(-90deg)"
我最好的尝试如下。第一种方法得到第一个整数,但没有得到+/-符号:

var rx = string.replace( /(^.+\D)(\d+)(\D.+$)/i,'$2')
而且,以下内容似乎让我得到了第二个,可能是数组中的一个元素,但也没有得到+/-符号:

var ry = string.match(/(\d+)/i);

您只需查找[+或-sign]后跟[一个或多个数字],如下所示:

"rotateX(-90deg) rotateY(-90deg)".match(/([+-]?\d+)/g); // ["-90", "-90"]

它只返回一个包含所有匹配项的数组,您可以使用
.length
检查其长度,以确保其中包含两项内容,然后使用
[0]
[1]

访问它们。您只需查找[+或-sign]后跟[一个或多个数字],如下所示:

"rotateX(-90deg) rotateY(-90deg)".match(/([+-]?\d+)/g); // ["-90", "-90"]

它只返回一个包含所有匹配项的数组,您可以使用
.length
检查其长度,以确保其中包含两项内容,然后使用
[0]
[1]

访问它们,为什么需要它?如果你在使用CSS矩阵时遇到问题,你应该这样说,有一些方法可以解析这些矩阵,等等。如果这是答案,那么问题应该是寻找加号和减号后面的数字,为什么你需要它?如果你在CSS矩阵方面遇到问题,你应该这么说,有一些方法可以解析这些矩阵,等等。如果这是答案,那么问题应该是查找加号和减号后面的数字谢谢-这可能是我遗漏了一些明显的东西,但似乎总是返回一个两匹配的数组,两个匹配项都是两个数字中的第一个,而不是第二个。有什么想法吗?根据你的方法-匹配字符-我想出了一个非常复杂的方法来提取我需要的信息。它至少起作用了
code
var rx2=tempstring.match(/X(-)\d+/);rx=rx[0]。子字符串(2);var ry2=tempstring.match(/Y(-)\d+/);var ry=ry[0]。子字符串(2);很抱歉-我错过了一个非常重要的标志。只需在结束正则表达式的/后面添加
g
,它意味着“全局”所以正则表达式匹配所有出现的情况,否则它会像你描述的那样中断:PThanks-这可能是我遗漏了一些明显的东西,但它似乎总是返回一个两个匹配数组,两个匹配都是两个数字中的第一个,而不是第二个。有什么想法吗?根据你的方法-匹配字符-我想出了一个真正令人信服的方法提取我需要的信息的绝对方法。它至少有效!
code
var rx2=tempstring.match(/X(-)\d+/);rx=rx[0]。子字符串(2);var ry2=tempstring.match(/Y(-);var ry=ry[0]。子字符串(2);抱歉-我错过了一个非常重要的标志。只需在结束正则表达式的/后面添加
g
。它意味着“全局”因此正则表达式匹配所有出现的情况,否则它会像您描述的那样中断:P