如何使用正则表达式获取变换值?

时间:2018-09-02 03:52:48

标签: javascript html regex svg qregularexpression

如何使用正则表达式获取变换值。我已经尝试过,但不适用于所有情况:

var transform = "translate(97.4 12)";

var split = /translate\(\s*([^\s,)]+)[ ,]([^\s,)]+)/.exec(transform);
/*
it given following output,

split[1] = 97.4;
split[2] = 12;
*/

但是此正则表达式不适用于以下情况:

"translate(97.4, 12)"; 
"translate(97.4)";
"translate(97.4,12)";

如何使用通用方式获得那些情景?

2 个答案:

答案 0 :(得分:2)

尝试一下:

translate\((-?\d+\.?\d*),?\s*(-?\d+[.]?\d*)?\)

regex101.com中,对正则表达式的解释如下

Regex Explanation

答案 1 :(得分:0)

尝试:

var transform = 'translate(97.4, 12)';
var reg = new RegExp(/translate\(\s*([0-9\.\,\s)]+)\)/g);

 var value = htmlData.replace(reg, function (a, b, c) {
       return b;
    });


value.split(','); //return value is:  [97.4, 12]

此外, 测试它的好尝试 https://www.regexpal.com/

非常好的和有用的正则表达式测试网站