美好的一天,在RegEx中表现不佳可能会帮助我。
我有array = ["5/8 po", "3/4 ts", "1 px", " 1/2" "];
如何通过RegEx转换为array = ["5/8", "3/4", "1", "1/2"];
数组中的值可能不同。
答案 0 :(得分:2)
您可以使用item.replace(/[a-z]|[A-Z]| /g, '')
和map()
获取该输出数组。 item.replace(/[a-z]|[A-Z]| /g, '')
会将所有字母替换为空白,您将获得所需的输出。
var array = ["5/8 po","1px"," 1.2","px 1", "px-1", "i-1/2"];
var res = array.map(item => item.replace(/[a-z]|[A-Z]| /g, ''));
console.log(res);
答案 1 :(得分:0)
您可以使用以下代码段:
var regex = /(?:[1-9][0-9]*|0)(?:\/[1-9][0-9]*)?/g;
var array = ["5/8 po", "3/4 ts", "1 px", "1/2"];
var arrayNumbers = array.map(x => x.match(regex)[0]);
console.log(arrayNumbers);
答案 2 :(得分:0)
这就是我要怎么做。此正则表达式测试分数或整数:
let arr = ["5/8 po", "3/4 ts", "1 px", "1/2"];
const regex = /[0-9]+\/?[0-9]*/;
arr = arr.map(i => i.match(regex)[0]);
console.log(arr);