使用jQuery将文本替换为变量的值

时间:2018-06-30 09:03:08

标签: javascript php jquery regex

我创建了一个使用sms message从数据库获取ajax get call的函数,成功后,我想将{order_id}文本替换为454574的order-id并可能其他一些变量,例如客户名称等。

我的尝试

$(document).delegate('.sms-template', 'click', function() {
  var tempID = $(this).attr('id').replace('sms-template-','');
  var oID = $(this).attr('data-id').replace('sms-template-','');

  $.ajax({
    url: 'index.php?route=sale/order/getSmsTemplate&token=<?php echo $token; ?>&template_id='+tempID, 
    type: 'get',
    dataType: 'json',          
    success: function(json) {

        $('textarea#input-order-comment-'+oID).append(json['message']);
    },
    error: function(xhr, ajaxOptions, thrownError) {
        alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
    }
  });
});

它工作正常,并且在message中将textarea显示为

Dear {customer_name}, Your Order : {order_id} is successfully placed and ready to process. 

我想用存储在php变量中的编号替换{customer_name}和{order_id}。

PS:我对RegEx并不了解。

1 个答案:

答案 0 :(得分:1)

这里最简单的是replace()

string.replace("old value","new value")

例如

var the_id = "454574";   // or where you get that from
var new_message = json['message'].replace("{order_id}",the_id);

$('textarea#input-order-comment-'+oID).append(new_message);

根据评论和问题编辑进行更新

要替换其他信息,可以执行以下操作

var the_id = "Order id", the_name = "Customer name";
var new_message = json['message'].replace("{order_id}",the_id).replace("{customer_name}", the_name);

$('textarea#input-order-comment-'+oID).append(new_message);

如果有更多替代产品,则此帖子提供了一些巧妙的解决方案: