嗨,我有一条类似的文字 “欢迎回来@@名字@@姓氏。您上次访问时间为@@日期”
我的目标是用实际值替换这些代币。
所以我所做的是
var str = "Welcome back @@Firstname @@Lastname. You Last accessed on @@Date;
var data = str.split('@');
我的想法是 - 一旦我这样做,我的数据将有一个类似于
的值数组["Welcome back", "@FirstName" , "@LastName", "You Last accessed on" , "@Date"]
一旦我有了这个,我就可以轻松地替换标记,因为我会知道哪些是属性,哪些是静态字符串。但我是个傻瓜,因为 JS 有其他想法。 相反,它会将其拆分为:
["Welcome back ", "", "Firstname ", "", "Lastname. You Last accessed on ", "", "Date"]
我做错了什么?或者替换字符串中标记的最佳方法是什么?
我看了here 。不太喜欢这种方法。不喜欢大括号。想要以“@”方式进行 - 因为这对于内容作者来说很容易
最佳答案
另一个正则表达式选项,在/@(@\w+)[^\w@]+/
上分割,捕获名称部分,同时丢弃第一个@
,假设名称标识符始终由单词字符组成:
var str = "Welcome back @@Firstname @@Lastname. You Last accessed on @@Date;"
var data = str.split(/@(@\w+)[^\w@]+/);
console.log(data.filter(s => s !== ""));
关于javascript 使用字符串分割替换标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45269627/