javascript 使用字符串分割替换标记

标签 javascript jquery replace token

嗨,我有一条类似的文字 “欢迎回来@@名字@@姓氏。您上次访问时间为@@日期”

我的目标是用实际值替换这些代币。

所以我所做的是

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/

相关文章:

javascript - 适用于发布商的 DoubleClick : Specify browser and ad dimensions

javascript - 为什么 Adsense 在我的 Wordpress 网站上显示一个黄色框?

javascript - 如果 ajax 返回时没有焦点,jquery ui 自动完成不会关闭选项菜单

javascript - 如何在每个循环中等待所有回调

regex - Notepad++ Regex(使用查找和替换)我想找到一个特定的单词并将其替换为出现在两个不同标签之间的字符串

javascript - 如何通过html元素访问js对象属性?

javascript - JavaScript求和函数不起作用

javascript - 将所有列加在一起?

javascript - 如何使用 jvectormap 中的 OnClick 函数更改另一个 div 中的文本?

c# - 如何替换动态 JSON 中的属性值