如何格式化来自把手的变量?

时间:2019-06-28 20:44:37

标签: handlebars.js

我收到了来自此车把的“ $ 100.00-$ 209.00”(请参阅​​第二行代码)

(这是一个价格范围)

我需要格式化它,所以它只显示最低价格。

不幸的是,我无法格式化原始代码,而需要使用HTML或类似格式来格式化代码。

我的问题是:收到后,有什么方法可以格式化它?

谢谢

<span class="price after_special>
 {{price<?php echo $priceKey; ?>_formated}}
</span>

该代码返回$ 100.00-$ 209.00 我只需要100美元

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以使用javascript的String.match()函数来格式化字符串。在下面的代码中,正则表达式将匹配:

  • ^-字符串的开头
  • \$-$号(需要转义)
  • [0-9]*-0到9之间的数字,*匹配0个或多个数字

返回的项目是一个数组,因此您需要使用[0]获取第一个值。

let price = '$100.00 - $209.00';
const regex = /^\$[0-9]*/;
let min = price.match(regex)[0];

console.log(min);

如果您需要在模板中进行操作,请注册一个助手

Handlebars.registerHelper('getMinPrice', function(value) {
    return value.match(/^\$[0-9]*/)[0];
});

var t = Handlebars.compile($('#t').html());
$('body').append(t({
    _min_price: "$100.00 - $200.00"
}));
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.1.2/handlebars.min.js"></script>
<script id="t" type="text/x-handlebars">
    Before: {{_min_price}}
    After: {{getMinPrice _min_price}}
</script>