首页 > 解决方案 > Smarty 模板引擎 - regex_replace 使用自定义 html 替换任何电话号码

问题描述

我的 cms 系统 (flynax.com) 使用 smarty 模板引擎。

我有从数据库打印字段值的模板。

模板中用于打印描述字段值 (html) 的标记是:

{$item.value}

我需要从描述字段中隐藏任何电话号码,为此我需要在字段输出中找到任何电话号码并将其替换为以下代码:

<span class='telefon' data-last='REPLACED_VALUE'><span class='telefon2'>{$lang.click_here_to_show}</span></span>

我有 jquery 代码,用于隐藏任何电话号码并在点击时显示(我还使用谷歌分析跟踪点击)。

    {literal}

<script>
    $(document).ready(function() {
      $('.telefon').toggle(function() {
     $(this).find('span').text({/literal}'{$lang.click_here_to_show}'{literal});
      }, function() {
        $(this).find('span').text($(this).data('last'));
      }).click();
    });
  </script>
{/literal}

我正在尝试并且给我带来错误的代码是:

{$item.value|regex_replace:"/([+]{0,1}[\d]{1,5}[\s]{0,1}[\/]{0,1}[(]{0,1}[\d]{0,3}[)]{0,1}\s{0,1}\d{2,4}[-]{0,1}[\s]{0,1}[\d]{2,4}[-]{0,1}[\s]{0,1}[\d]{1,4})$/gm":"<span class='telefon' data-last='$1'><span class='telefon2'>{$lang.click_here_to_show}</span></span>"}

测试我的正则表达式: 检查这里

你能建议我做错了什么吗?

谢谢。

标签: phpregexsmartysmarty3smarty2

解决方案


推荐阅读