Dan*_*993 6 javascript regex string split
我在字符串变量中有一个字符串格式:
"{0} Hello World {1}"
我需要把它分成这样的东西:
"{0}","Hello World","{1}"
从我所尝试的最好的我可以得到:
"","0"," Hello World ","1",""
我试过转换Regex Split Around Curly Braces中的例子,
但它不起作用,那里的拆分要么删除了所有内容,要么保留空格并删除了{}.
所以,我的问题与其他文章中的问题相同,如何保留括号{}并删除空格之后和之前的空格?
您可以使用以下内容:
\s*({\d+})\s*
JS代码:
\s*({\d+})\s*
您可以使用Split具有捕获组的正则表达式:
如果separator是包含捕获括号的正则表达式,则每次匹配时,捕获括号的结果(包括任何未定义的结果)都会拼接到输出数组中.
var re = /\s*(\{[0-9]+\})\s*/g;
var splt = "{0} Hello World {1}".split(re).filter(Boolean);
alert(splt);正则表达式解释:
\s* - 任意数量的空格(\{[0-9]+\}) - 匹配的捕获组:
\{ - 文字 {[0-9]+ -  1位或更多位数\} - 文字 }\s* - 任意数量的空格filter 可以帮助摆脱数组中的空元素.
filter()为数组中的每个元素调用一次提供的回调函数,并构造一个包含所有值的新数组,其中回调返回true值或强制转换为的值true.仅为已分配值的数组的索引调用回调; 对于已删除的索引或从未分配过值的索引,不会调用它.
不会通过回调测试的数组元素被简单地跳过,并且不包含在新数组中.