Javascript Angularjs过滤器-如果出现多次,则删除字符

Javascript Angularjs过滤器-如果出现多次,则删除字符,javascript,angularjs,replace,slice,Javascript,Angularjs,Replace,Slice,在这方面已经做了几个小时,没有任何突破 我有一个时间表,里面有不同的时间 4' 10' 等 但有些人身上有附属物 5'+1' 8'+2' 我将过滤器设置为: angular.module('myApp').filter('addedTime', function(){ return function(text) { var newText = text.replace(/\+.*$/, '<sup class="additional">$&</

在这方面已经做了几个小时,没有任何突破

我有一个时间表,里面有不同的时间

4' 10' 等

但有些人身上有附属物

5'+1' 8'+2'

我将过滤器设置为:

angular.module('myApp').filter('addedTime', function(){
      return function(text) {
       var newText = text.replace(/\+.*$/, '<sup class="additional">$&</sup>');
       console.log(newText);

       return newText;
  };
});'
angular.module('myApp').filter('addedTime',function(){
返回函数(文本){
var newText=text.replace(/\+.*$/,'$&');
console.log(newText);
返回新文本;
};
});'
正如您所看到的,它为加法时间添加了一个上标。然而,我想从中删除最后的“(单引号),我不知道如何在不影响正常时间(4',6'等)的情况下完成它

我想把它完全分开,重新加入,但不确定这是否值得。。任何建议都将不胜感激

编辑: 基本上我是想让它看起来像

<ul>
   <li>5'</li>
   <li>5'<sup>+2</sup></li>
<ul>
  • 5'
  • 5'+2

(注意+2后面缺少单引号)

replace
中使用回调如何

var newText = text.replace(/\+([0-9]*)\'/g, function(a) {
    return '<sup class="additional">'+a.substring(1, a.length - 1) +'</sup>'
});
另一种选择:

var newText = text.replace(/\+(\d)\'/g, '<sup class="additional">$1</sup>')
var newText=text.replace(/\+(\d)\'/g,$1')

返回
5'+1'8'2

5'+1'8'+2'
上执行操作时,能否显示您的预期输出?可能是
text.replace(/(\+\d+)/g,$1')
var newText=text.replace(/\+(\d)\'/g,$1')工作正常!我通过拆分数组解决了这个问题,用了8行代码。这更整洁!需要更详细地学习正则表达式替换!
var newText = text.replace(/\+(\d)\'/g, '<sup class="additional">$1</sup>')