我想将以下字符串解析为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] = !
答案 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>", "!"]