我正在尝试为正则表达式构建一个正则表达式,以在{t}内带有大括号的每个位置拆分字符串。
我的问题是正则表达式。目前,我有一个与花括号{}匹配的Regex表达式,但是当我在这些花括号上分割字符串时,花括号将被split函数删除。
想象一下我有一个字符串:“我的名字是{name},我已经{years}岁了”。在该字符串上,我将使用以下表达式:
const splitted = value.split(/[{}]+/g); // Value is "My name is {name} and I am {years} old"
console.log(splitted);
在console.log上方显示
["My name is ,", "name", " and I am ", "years", " old"]
但是我想要
["My name is ,", "{name}", " and I am ", "{years}", " old"]
我究竟做错了什么?
您可以将此正则表达式与捕获组一起使用:
const s = "My name is {name} and I am {years} old";
var arr = s.split(/({[^}]*})/g);
console.log(arr);
{[^}]*}
匹配以该模式开头{
和结尾的子字符串,}
并通过在该模式周围放置一个捕获组,我们确保该组是split
结果的一部分。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句