正则表达式用于从转换矩阵中选择元素
Regex for selecting elements from transform matrix
我有一串样式转换
,如下所示: matrix(0.312321, -0.949977, 0.949977, 0.312321, 0, 0)
如何形成包含此矩阵元素的数组?如何为此编写正则表达式的任何提示?
我会这样做...
// original string follows exactly this pattern (no spaces at front or back for example)
var string = "matrix(0.312321, -0.949977, 0.949977, 0.312321, 0, 0)";
// firstly replace one or more (+) word characters ('w) followed by `(` at the start (^) with a `[`
// then replace the `)` at the end with `]`
var modified = string.replace(/^'w+'(/,"[").replace(/')$/,"]");
// this will leave you with a string: "[0.312321, -0.949977, 0.949977, 0.312321, 0, 0]"
// then parse the new string (in the JSON encoded form of an array) as JSON into a variable
var array = JSON.parse(modified)
// check it is correct
console.log(array)
这是一种方法。 使用正则表达式解析出数字部分,然后使用 split()
方法:
var s = "matrix(0.312321, -0.949977, 0.949977, 0.312321, 0, 0)";
s.match(/[0-9., -]+/)[0].split(", "); // results in ["0.312321", "-0.949977", "0.949977", "0.312321", "0", "0"]
试试这个:
/^matrix'(([+'-'d.]+), ([+'-'d.]+), ([+'-'d.]+), ([+'-'d.]+), ([+'-'d.]+), ([+'-'d.]+)')$/
.exec(str).slice(1);
演示
可能是
这样的:
var string = "matrix(0.312321, -0.949977, 0.949977, 0.312321, 0, 0)";
var array = string.replace(/^.*'((.*)')$/g, "$1").split(/, +/);
请注意,以这种方式数组将包含字符串。如果你想要实数,一个简单的方法是:
array = array.map(Number);
你的 js 引擎需要支持 map 或者有一个垫片(当然你也可以手动转换它们)。
相关文章:
- WebdriverIO waitForExist()选择元素's选定的选项
- 如何选择元素的第n个子元素
- Angular没有根据模型更新我的选择元素
- jquery使用name from变量按类选择元素
- 如何使用jQuery按数据日期属性选择元素
- 向html选择元素添加选项
- 使用Jquery在相同类型的元素中选择元素
- 他们是如何使用angular/jqLite find()方法按属性名称和值选择元素的?ng conf 2015
- 如何在Angular中清除选择元素中的过滤器
- 使用其中一个元素作为参考点,从Javascript数组中选择元素
- Javascript选择元素到字符串的比较
- Angular始终选择选择元素中的第一个选项
- 使用 jquery .find() 遍历按类和存储属性选择元素
- 通过 id json, jquery 选择元素
- 如何基于另一个已经存在的选择器选择元素
- 禁用多个选择元素中的非“选定”选项,但使用 jquery 的一个除外
- HTML 选择元素的只读等效项
- 在iPad上,如何通过Javascript事件在选择元素上设置focus()而不显示选项
- 单击事件似乎不适用于 IE 中的选择元素
- Angular js,在选择元素上,我想 POST 数据以将其保存在数据库中,然后我想使用 PUT 更新它而无需重新加载