只用逗号分割字符串不留空格
Split string by commas only not leaving whitespaces
假设我有以下字符串:
let cssValue = '20px, 40px'
我希望拆分后得到如下数组:
cssValue.split(regex); // ['20px', '40px']
但是如果字符串不包含逗号(只有空格,即 20px 40px
),结果应该是 ['20px 40px']
我的正则表达式 [^a-zA-Z0-9]+
不考虑逗号。使用此正则表达式,无论字符串是否包含逗号,我都会得到 ['20px', '40px']
。我该如何解决?
您可以直接用逗号和可能的空格分隔。
const split = s => s.split(/,\s*/);
console.log(split('20px, 40px'));
console.log(split('20px 40px'));
如果您只想按逗号拆分并删除前导空格,则根本不需要使用正则表达式,如果您不想的话。
字符串 ','
就足够了,因为如果你想在之后整理任何前导空格,你可以使用 trim()
.
工作示例:
let cssValue1 = '20px, 40px';
let cssValue2 = '20px 40px';
const splitCSSValue = (cssValue) => cssValue.split(',');
const trimElements = (array) => array.map((element) => element.trim());
console.log(trimElements(splitCSSValue('20px, 40px')));
console.log(trimElements(splitCSSValue('20px 40px')));
假设我有以下字符串:
let cssValue = '20px, 40px'
我希望拆分后得到如下数组:
cssValue.split(regex); // ['20px', '40px']
但是如果字符串不包含逗号(只有空格,即 20px 40px
),结果应该是 ['20px 40px']
我的正则表达式 [^a-zA-Z0-9]+
不考虑逗号。使用此正则表达式,无论字符串是否包含逗号,我都会得到 ['20px', '40px']
。我该如何解决?
您可以直接用逗号和可能的空格分隔。
const split = s => s.split(/,\s*/);
console.log(split('20px, 40px'));
console.log(split('20px 40px'));
如果您只想按逗号拆分并删除前导空格,则根本不需要使用正则表达式,如果您不想的话。
字符串 ','
就足够了,因为如果你想在之后整理任何前导空格,你可以使用 trim()
.
工作示例:
let cssValue1 = '20px, 40px';
let cssValue2 = '20px 40px';
const splitCSSValue = (cssValue) => cssValue.split(',');
const trimElements = (array) => array.map((element) => element.trim());
console.log(trimElements(splitCSSValue('20px, 40px')));
console.log(trimElements(splitCSSValue('20px 40px')));