有一个 JavaScript 的需求
给一个 字符串,按照规定切割为 数组。
比如:
var test = "你啊后啊撒发我发<blod>你好啊啊啊啊</blod>"
想要得到的结果为:
["你", "啊", "后", "啊", "撒", "发", "我", "发", "<blod>", "你", "好", "啊", "啊", "啊", "啊", "</blod>"]
自己太菜,没想到好的解决方法,各位 v 站大佬,能否指导指导
1
waiaan 2019 年 10 月 14 日 正则?
|
2
shintendo 2019 年 10 月 14 日 最好准确描述一下你所说的“规则”,从你的例子里看不出来
|
3
Vegetable 2019 年 10 月 14 日 你要先描述一下,你的规则是什么,不要用例子来表达。
这样可能会让你自己得到答案,也让想帮忙的人搞清楚点状况 |
4
None123 2019 年 10 月 14 日 正则
|
5
mufeng 2019 年 10 月 14 日 '你啊后啊撒发我发<blod>你好啊啊啊啊</blod>'.split(/(<[^>]+>|'')/)
=> ["你啊后啊撒发我发", "<blod>", "你好啊啊啊啊", "</blod>", ""] |
7
ipwx 2019 年 10 月 14 日 via Android 那 <abc<def>ghi> 怎么算? 一整个?
|
9
lijsh 2019 年 10 月 14 日 先写个 parser
|
10
seki 2019 年 10 月 14 日 用 5 楼的方法,先把 <> 给分出来,再跑一遍把剩下的分开
|
11
feiniu OP 谢谢大家🙏,我先用 5 楼的方法试试
|
12
ipwx 2019 年 10 月 14 日 |
13
jackchao7432 2019 年 10 月 14 日
在飞牛?
|
14
gbin 2019 年 10 月 14 日 不会正则也没事,遍历一次,遇到 `<` 存起来,知道遇到 `>` 视为一个 token 就好。
https://ideone.com/Oc2N57 |
16
rabbbit 2019 年 10 月 14 日
|
17
feiniu OP 谢谢各位大佬 🙏🙏
|
18
Zoro76 2019 年 10 月 16 日
如果只是你这种结构的字符串的话,可以试试这个 test.split(/(?=[\u4e00-\u9fa5<])/)
|
19
meepo3927 2019 年 10 月 17 日
#14 楼的方法可以, 简单有效
|