如何使用正则表达式在括号和字母之间提取有理数?

时间:2018-03-19 09:07:11

标签: javascript regex

我试图从CSS转换属性中提取学位率,

transform = "rotate(33.8753deg) translateZ(0px)"

带正则表达式。到目前为止,我已经成功获得了几乎确切的数字:

const re = new RegExp('.*rotate( *(.*?) *deg).*', 'm');
let degRate = transform.match(re);

输出:第三个元素为的数组:

"(33.8753"
  1. 如何才能获得没有括号的数字?
  2. 我怎样才能得到这个号码? (不在数组中)

2 个答案:

答案 0 :(得分:1)

您可以使用RegEx \(([^(]*)deg\)并使用.match(...)[1]

获取第一个群组
  • \(与第一个(

  • 相匹配
  • ([^(]*)捕获除( 0次或更多次以外的任何内容

  • deg\)字面上匹配deg)



let str = "rotate(33.8753deg) translateZ(0px)";
let deg = str.match(/\(([^(]*)deg\)/)[1];
console.log(deg);




答案 1 :(得分:1)

更简单的提取:



let str = "rotate(33.8753deg) translateZ(0px)";
let deg = parseFloat(str.replace(/^.*rotate\(/,""));
console.log(deg);