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