javascript - 如何在 JavaScript 中解析包含管道和括号的格式化字符串
问题描述
在 Javascript 中,我有以下字符串:
"|John Doe|[user:001] created article |Article Name|[article:001]"
如何使代码解析为"<a href="/user/001">John Doe</a> created article <a href="/article/001">Article Name</a>"
?
我解决的问题代码
根据 Agi Hammerthief 的建议
var splitedStr = str.split("|");
var filtered = splitedStr.filter(function (el) {
return el !== "";
});
$.each(filtered, function( index, value ) {
var mySubString = value.substr(
value.lastIndexOf("[") + 1,
value.lastIndexOf("]") - 1
);
if (mySubString.trim()) {
filtered[index] = value.replace('['+mySubString+']', '');
var infoLink = mySubString.split(":");
filtered[index - 1] = "<a href='/"+infoLink[0]+"/"+infoLink[1]+"'>" + filtered[index - 1] + "</a>";
}
});
console.log(filtered.join(""));
解决方案
您可以使用正则表达式和组:
\|([\w ]*)\|\[([\w:]*)\]([\w ]*)\|([\w ]*)\|\[([\w:]*)\]
第 1 组是“John Doe”,2 是“用户:001”,3 是“创建的文章”,4 是“文章名称”,5 是“文章:001”
推荐阅读
- amazon-web-services - AWS Glue、PySpark || 从 RDS 作为 DynamicFrame 读取时出错
- plot - 混合数据和参数的 splot
- package - 其余段落,在下一页没有缩进
- azure-managed-identity - 无法从 Synapse Analytics 访问 ADLS
- javascript - 为什么这个javascript代码无法打开,任何人都可以帮忙?
- angular - 页面刷新时重定向到父路由而不是子路由
- r - 我应该如何处理“'someFunction' 不是从 'namespace:somePackage' 导出的对象”错误?
- oracle - 如何通过休息界面访问我的 Android 应用程序中的 Oracle Apex 登录?
- c# - INSERT 语句与实体框架核心中的 FOREIGN KEY 约束冲突,单个语句中有 2 个表
- django - 给定坐标的Django过滤器几何