如何以正确的方式拆分字符串?

Max*_*pov 2 javascript

例如,我有这个字符串:

a = "Hello, @USER_ID:1@, how are you?"

我需要将此字符串转换为单词数组:

["Hello, ", "@USER_ID:1@", ", how are you?"]

我试过这段代码:

a.split(/\@USER_ID:([0-9]+)\@/)

但它返回这个:

 ["Hello, ", "1", ", how are you?"]

拆分此字符串的正确方法是什么?

tri*_*cot 5

如果您使用正则表达式作为split参数,则捕获组(由括号之间的内容匹配)也会在结果中返回。所以你应该让这个捕获组成为整个表达式:

 a.split(/(\@USER_ID:[0-9]+\@)/)
Run Code Online (Sandbox Code Playgroud)

请注意,正则表达式可以缩短为:

 a.split(/(@USER_ID:\d+@)/)
Run Code Online (Sandbox Code Playgroud)