Как получить значения преобразования с помощью регулярных выражений? - PullRequest
0 голосов
/ 02 сентября 2018

Как получить значения преобразования с помощью регулярного выражения. Я пытался, но это не работает для всех сценариев:

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 голосов
/ 02 сентября 2018

попробуйте это:

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/

очень хороший и полезный сайт для тестирования регулярных выражений

0 голосов
/ 02 сентября 2018

Попробуйте это:

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

С regex101.com Объяснение регулярного выражения следующее

Regex Explanation

...