Sea*_*ass 0 javascript regex split
我想将一个字符串拆分为一个数组,其中所有前导数字作为一个值,字符串的其余部分作为第二个值:
3px -> Array('3','px')
01b -> Array('01','b')
01 -> Array('01','')
b -> Array('','b')
1.5 -> Array('1','.5')
300,5 -> Array('300',',5')
a1 -> Array('','a1')
Run Code Online (Sandbox Code Playgroud)
在 PHP 中你可以这样做:
$matches = array();
preg_match('/([0-9]+)([^0-9]+)/',$value,$matches);
Run Code Online (Sandbox Code Playgroud)
我会使用.match而不是split:匹配并捕获数字,然后匹配并捕获不同捕获组中的其他任何内容:
const doSplit = str => {
const [, ...arr] = str.match(/(\d*)([\s\S]*)/);
return arr;
};
console.log(
doSplit('3px'),
doSplit('01b'),
doSplit('01'),
doSplit('b'),
);Run Code Online (Sandbox Code Playgroud)
(\d*)- 匹配数字([\s\S]*)- 绝对匹配之后的任何内容