在第一个空格出现时拆分字符串
2022-08-30 01:38:35
我没有得到一个优化的正则表达式,将我拆分为基于第一个空格的字符串:
var str="72 tocirah sneab";
我需要得到:
[
"72",
"tocirah sneab",
]
我没有得到一个优化的正则表达式,将我拆分为基于第一个空格的字符串:
var str="72 tocirah sneab";
我需要得到:
[
"72",
"tocirah sneab",
]
如果您只关心空格字符(而不是制表符或其他空格字符),只关心第一个空格之前的所有内容和第一个空格之后的所有内容,则可以在没有正则表达式的情况下执行此操作,如下所示:
str.substring(0, str.indexOf(' ')); // "72"
str.substring(str.indexOf(' ') + 1); // "tocirah sneab"
请注意,如果根本没有空格,则第一行将返回空字符串,第二行将返回整个字符串。确保这是您在那种情况下想要的行为(或者不会出现这种情况)。
Javascript不支持lookbehinds,所以是不可能的。 工程:split
match
str.match(/^(\S+)\s(.*)/).slice(1)
另一个技巧:
str.replace(/\s+/, '\x01').split('\x01')
怎么样:
[str.replace(/\s.*/, ''), str.replace(/\S+\s/, '')]
为什么不呢
reverse = function (s) { return s.split('').reverse().join('') }
reverse(str).split(/\s(?=\S+$)/).reverse().map(reverse)
或者也许
re = /^\S+\s|.*/g;
[].concat.call(re.exec(str), re.exec(str))
2019年更新:从ES2018开始,支持外观:
str = "72 tocirah sneab"
s = str.split(/(?<=^\S+)\s/)
console.log(s)