在Javascript中将字符串解析为Array

时间:2015-02-20 03:11:54

标签: javascript html css regex

我想将以下字符串解析为javascript数组。 Regex能够执行这样的任务吗?我该如何实现这一目标?我希望内容能够是除了键之外的动态

<type1> <type2>

将保持不变。意味着字符串与任何文本的任何组合都无关紧要。键是分隔符。

Hello, I am your <type1> and <type2>!

array[0] = Hello, I am your
array[1] = <type1>
array[2] = and 
array[3] = <type2>
array[4] = !

2 个答案:

答案 0 :(得分:1)

我不确定您是否希望使用HTML上下文执行此操作,因为您已标记了问题,如果是这样,我不会这样做并寻找更好的方法,例如使用解析器。

你可以拆分前面的空格和这样的分隔符。

var r = 'Hello, I am your <type1> and <type2>!'.split(/\s*(<[^>]*>)\s*/);
console.log(r); //=> [ 'Hello, I am your', '<type1>', 'and', '<type2>', '!' ]

如果你想保留前面的空格,只在分隔符上拆分。

var r = 'Hello, I am your <type1> and <type2>!'.split(/(<[^>]*>)/);
console.log(r); //=> [ 'Hello, I am your ', '<type1>', ' and ', '<type2>', '!' ]

答案 1 :(得分:1)

假设您没有尝试使用JavaScript解析HTML:

str.split(/(<[^>]+>)/)

它根据尖括号之间的东西分割字符串。

结果

["Hello, I am your ", "<type1>", " and ", "<type2>", "!"]