我正在尝试整合一个RegEx来分割各种可能的用户输入,虽然我已经设法在某些情况下取得了成功,但我还是没有设法涵盖我想要的每一个案例。< / p>
可能的输入和预期的输出
"1 day" > [1,"day"]
"1day" > [1,"day"]
"10,000 days" > [10000,"days"]
是否可以从字符串中拆分数字和文本部分而不必有空格,同时也可以从字符串中删除逗号等?
This is what I've got at the moment
[a-zA-Z]+|[0-9]+
这似乎很好地分割了数字和文本部分,但是被逗号绊倒了。 (实际上,当我写这篇文章时,我想我可以使用结果数组的最后一部分作为文本部分,并将所有其他部分连接成数字部分?)
答案 0 :(得分:1)
除了从匹配的数字字符串中删除逗号外,此正则表达式仍然有效:
([0-9,]+]) *(.*)
你不能忽视&#34;返回的正则表达式匹配字符串中的字符,因此您只需要在之后从返回的正则表达式匹配中删除逗号。
答案 1 :(得分:1)
var test = [
'1 day',
'1day',
'10,000 days',
];
console.log(test.map(function (a) {
a = a.replace(/(\d),(\d)/g, '$1$2'); // remove the commas
return a.match(/^(\d+)\s*(.+)$/); // split in two parts
}));
&#13;