将字符串拆分为两个字符之间的数组
Split string into array between to characters?
所以我试图分割字符串,我有一些不正常的方式。我尝试用正则表达式做一些事情,但我不太喜欢regex来发明这样的东西。
基本上我有一个像这样的字符串:
var links = "<a>4</a><b><c><d><e><f>";
我想使用。split() js方法在数组中接收它们,如下所示
["<a>4</a>", "<b>", "<c>", "<d>", "<e>", "<f>"]
很明显,我需要在><
字符上拆分它们但是如果我这样做:
links.split("><");
它们会以我想要的方式分开但我要松开>
和<
符号。例子:
["<a>4</a", "b", "c", "d", "e", "f>"]
这对我来说不是一个好的解决方案。
所以基本上我的问题是:是否有可能使某种解决方案与正则表达式或其他东西得到数组结果,我想象?
一种快速而干净的方法是使用match
代替split
:
var matches = links.match(/<.+?>(?=<|$)/g)
对于你的字符串,它给出
["<a>4</a>", "<b>", "<c>", "<d>", "<e>", "<f>"]
请注意,在HTML等非正则语言中使用正则表达式是危险的。对于简单的事情,它通常是可以的,但它也有局限性,您可能会遇到意外,例如,如果您想将它应用于嵌套元素。
一种快速的方法是在><
之间添加一个分隔符,使用正则表达式replace
,然后在该分隔符上进行分割:
var links = "<a>4</a><b><c><d><e><f>";
links.replace(/></g, '>|<').split('|');
结果:["<a>4</a>", "<b>", "<c>", "<d>", "<e>", "<f>"]
只要确保您选择的分隔符不出现在字符串本身。
(您可以使用较长的字符串作为分隔符,如:"|-|"
)
相关文章:
- 如何检查两个字符串是否具有相同的字符,包括特殊字符
- 如果两个跨度有数据,则添加字符
- 如何在jQuery中搜索两个字符之间的字符串
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript 密码不应包含用户的帐户名或用户全名中超过两个连续字符的部分
- 电子邮件验证不接受仅包含两个字符的域
- 如何完成此循环?连接前面的两个字符
- 如何使用jQuery获取url的最后两个字符
- Javascript-使用Regex获取两个字符之间的字符
- Regex表达式,用于替换两个字符(包括字符)之间的字符串
- 通过JQuery在网页上的两个字符之间放置空格
- 如果两个波浪号字符之间的字符计数大于60,则在两个波浪字字符之间添加波浪号
- javascript:如何使用regex删除两个特殊字符之间的逗号(,)
- 如何匹配两个字符内的重复模式
- 在javascript中组合使用连字符连接的两个字符串
- Regex/Javascript;否定地选择两个字符的重复
- 匹配单词中两个相等的字符,并替换为一个RE
- 正则表达式不匹配序列中的两个相同字符
- 如何提取两个字符之间的字符串
- 如何在 javascript 中替换两个声明字符之间的字符串