javascript - 正则表达式 从模板中提取文本

标签 javascript regex

我有一个关于正则表达式和 JavaScript 的问题。用户将获得以下模板作为文本的输入(它将根据用户的选择而变化),例如:

Accessories <accessory type> for a Group, for <What Purpose>

现在用户将修改输入文本,假设最终结果如下。

我的打印机的配件,适用于我的计算机

我想看看我是否可以从该文本中提取值,如果这种情况它将是“我的计算机”。有时我会完全修改文本,但我现在可以排除这个等式。

可以用正则表达式来完成吗?或者有什么东西或库可以帮助我解决这个问题吗?

感谢和问候,

最佳答案

var text = 'Accessories <accessory type> for a Group, for <What Purpose>';
var result = text;

var params =
{
        '<accessory type>': 'of my printer',
        '<What Purpose>': 'my computer'
};

var m = text.match(/<[^>]+>/g);

for(var i in m)
{
        var re = new RegExp(m[i], 'g');
        result = result.replace(re, params[m[i]]);
}

console.log(result);

演示:https://jsfiddle.net/ka4965uh/

结果: 我的打印机的配件,用于团体、用于我的计算机

关于javascript - 正则表达式 从模板中提取文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37326742/

相关文章:

javascript - 为什么访问 Ajax 响应变量会导致代码崩溃?

javascript - 后端 api 与数据库(作为服务)

javascript - 如何使用 AJAX 删除项目

java - 正则可选匹配

sql - 用于提取逗号分隔值的 Oracle 查询

javascript - 无法在 iOS 中定位点击的元素

javascript - 将表单数据转换为对象

python - Python 中模式匹配和替换的更好方法是什么?

java - 在 HashSet 中搜索时如何使用正则表达式

c# - 正则表达式 - C# 的行为不同于 Perl/Python