最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

javascript:拆分多个分隔符的字符串,但也将分隔符保留为单独的标记

IT培训 admin 22浏览 0评论

javascript:拆分多个分隔符的字符串,但也将分隔符保留为单独的标记

我想分割一个字符串,但希望将标记以及分割符保留为单独的标记,并希望返回一个数组:

elt(​a,b,c)" => 
0 = "elt"
1 = "("
2 = "a"
3 = ","
4 = "b"
5 = ","
6 = "c"
7 = ")"

我目前为止:

string = "elt(a, b, c)" 
string.split(new RegExp('[-+(),*/:? ]', 'g'))


0 = "elt"
1 = "a"
2 = ""
3 = "b"
4 = ""
5 = "c"
6 = ""

我想将分隔符作为数组传递,例如:SEPERATORS = [ '+', ',', '>>>=', '>>=', '<<=',",", "("].join("")

回答如下:

您可以在正则表达式中使用捕获组来伪装令牌:

string.split(/([-+(),*/:? ])/g)
              ^            ^
              |___ group __|

输出:

[
  'elt', '(', 'a', ',',
  '',    ' ', 'b', ',',
  '',    ' ', 'c', ')',
  ''
]

您也可以轻松删除空字符串:

string.split(/([-+(),*/:? ])/g).filter(Boolean)

javascript:拆分多个分隔符的字符串,但也将分隔符保留为单独的标记

我想分割一个字符串,但希望将标记以及分割符保留为单独的标记,并希望返回一个数组:

elt(​a,b,c)" => 
0 = "elt"
1 = "("
2 = "a"
3 = ","
4 = "b"
5 = ","
6 = "c"
7 = ")"

我目前为止:

string = "elt(a, b, c)" 
string.split(new RegExp('[-+(),*/:? ]', 'g'))


0 = "elt"
1 = "a"
2 = ""
3 = "b"
4 = ""
5 = "c"
6 = ""

我想将分隔符作为数组传递,例如:SEPERATORS = [ '+', ',', '>>>=', '>>=', '<<=',",", "("].join("")

回答如下:

您可以在正则表达式中使用捕获组来伪装令牌:

string.split(/([-+(),*/:? ])/g)
              ^            ^
              |___ group __|

输出:

[
  'elt', '(', 'a', ',',
  '',    ' ', 'b', ',',
  '',    ' ', 'c', ')',
  ''
]

您也可以轻松删除空字符串:

string.split(/([-+(),*/:? ])/g).filter(Boolean)
11136
发布评论

评论列表 (0)

  1. 暂无评论