我有以下格式的几个字符串
<span class="label">20€</span>
并希望将其全部转换为以下内容:
<span class="label">20<small>€</small></span>
我怎样才能在Jquery中实现这个目标?
答案 0 :(得分:5)
我建议:
$('.label').html(function(i,h){
return h.replace(/([^\d+])/,'<span class="small">$1</span>');
});
请注意,我选择使用span
类small
,而不是small
元素。
但在HTML 5下,请记住small
元素是:
重新用于代表侧面评论和小字体,包括版权和法律文字,与其风格的演示文稿无关。
Source: https://developer.mozilla.org/en-US/docs/HTML/Element/small
如果货币符号是可预测的,您可以明确替换€
字符(而不是使用上面的代码来替换,实际上是'not-numbers'):
$('.label').html(function(i,h){
return h.replace(/(€)/,'<span class="small">$1</span>');
});
或者,假设货币符号是事先已知的,您可以指定要替换的符号(尽管再次使用正则表达式):
$('.label').html(function(i,h){
return h.replace(/([€£$])/,'<span class="small">$1</span>');
});
参考文献:
答案 1 :(得分:1)
它有效,但影响其他没有€的字符串 字符。我的意思是其他跨度与同一类,它改变了 第一个字母或那些字符串。图I我有其他字符串 语法:
<span class="label">request price</span>
<强> HTML:强>
<span class="label currency">20€</span>
注1:添加了其他类货币以标识需要修改的范围。
注2:使用span而不是small,因为所有样式元素都是重新使用的。 (谢谢@David)。阅读更多信息@MDN https://developer.mozilla.org/en-US/docs/HTML/Element/small
您可以使用如下所示的替换功能
$(function () {
$('span.label.currency').html(function(i, v) {
return v.replace('€', '<small>€</small>');
});
});