首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >突出显示角2中的特定文本

突出显示角2中的特定文本
EN

Stack Overflow用户
提问于 2019-02-13 05:25:26
回答 2查看 97关注 0票数 0

我有一条短信,大概是:

代码语言:javascript
复制
LOREM IPSUM 

DOLOR SIT amet, 

1. consectetuer adipiscing elit. Aenean commodo LIGULA EGET dolor. Aenean massa. Cum sociis natoque penatibus

  SUMMERY: ET MAGNIS DIS 

 PHASELLUS VIVERRA NULLA

 LUCTUS PULVINAR, HENDRERIT ID

2. parturient montes, nascetur ridiculus mus. Donec quam  

  SUMMERY: FELIS, ULTRICIES NEC. 

3. Pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede  

  SUMMERY: ET MAGNIS DIS 

 PHASELLUS VIVERRA NULLA

vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede

MOLLIS PRETIUM.

现在我想给那些以SUMMERY开头的特定大写文本着色,这意味着我必须给

ET VIVERRA NULLA LUCTUS PULVINAR,HENDRERIT ID

萨默里:费利斯,乌尔特里尼。

夏季: ET MAGNIS DIS病虫害

我怎么能这么做?或者如何在字符串数组中获得这些值?数组应该如下所示:

代码语言:javascript
复制
["SUMMERY: ET MAGNIS DIS 

 PHASELLUS VIVERRA NULLA

 LUCTUS PULVINAR, HENDRERIT ID", "SUMMERY: FELIS, ULTRICIES NEC.", "SUMMERY: ET MAGNIS DIS 

 PHASELLUS VIVERRA NULLA"]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-04 17:58:19

我们已经找到了用正则表达式来实现这个目标的方法。这是这样做的代码。

代码语言:javascript
复制
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
  name: 'highLightText'
})
export class HighLightText implements PipeTransform {
  transform(summary: string): any {
    
    let cleanedString = summary.replace(/\\.br\\\d{3} /g, '\\.br\\');
       const regexReported = /(?<=SUMMARY:)(.+?)(?=\\.br\\\\.br\\\s+Reported and)/gm;
  
    var segment = regexReported.exec(cleanedString); 
    if (segment == null || segment.length === 0)
    {
      const regexDoctor = /(?<=SUMMARY:)(.+?)(?=\\.br\\\\.br\\\s+Dr)/gm;
      segment = regexDoctor.exec(cleanedString);
    }
    if (segment == null || segment.length === 0)
      return summary;
    else {
      if (segment[0].indexOf('SUMMARY:') > 0) {
        
        var value = this.replaceBreaks(summary);
        if (value.includes('SUMMARY:<br/> <br/>')) {
          value = value.replace(new RegExp("SUMMARY:<br/>", "g"), "SUMMARY:")
          let highLight = value.replace(new RegExp("SUMMARY:", 'g'), '<span class="sixteen"> SUMMARY:');
          let removingSpan = highLight.replace(new RegExp('.\s+<br/>\s+<br/> <br/>', 'g'), '.</span><br/> <br/>');
          return `${removingSpan}`;

        }
        if (value.includes('SUMMARY: <br/><br/><br/>')) {
          value = value.replace(new RegExp("SUMMARY:<br/><br/>", "g"), "SUMMARY:");

        }

        let highLight = value.replace(new RegExp("SUMMARY:", 'g'), '<span class="sixteen"> SUMMARY:');
        let removingSpan = highLight.replace(new RegExp('<br/> <br/>', 'g'), '</span><br/> <br/>');
        return `${removingSpan}`

      }
       else {
          return cleanedString.replace('SUMMARY:', '').replace(segment[0], '<span class="sixteen"> SUMMARY:' + segment[0] + "</span>");
      }
      }
       
  }

  public replaceBreaks(value: string) {
    let newValue = value
      .replace(/\\.br\\\d{3}/g, "<br/>")
      .replace(/\\.br\\/g, "<br/>");
     
    return `${newValue}`;
  }
    }
代码语言:javascript
复制
.sixteen{
color:blue;
}

票数 0
EN

Stack Overflow用户

发布于 2019-02-13 06:11:56

如果我的理解是正确的,那么您需要修改代码的某些更改。这是代码,如果您需要:

AppComponent

代码语言:javascript
复制
export class AppComponent {
  name = 'Angular';
  data = [
    {
      "text": "1. consectetuer adipiscing elit. Aenean commodo LIGULA EGET dolor. Aenean massa. Cum sociis natoque penatibus",
      "child": [
        {
          "text": "SUMMERY: ET MAGNIS DIS PHASELLUS VIVERRA NULLA LUCTUS PULVINAR, HENDRERIT ID",
          "color": "red"
        }
      ]
    },
    {
      "text": "2. parturient montes, nascetur ridiculus mus. Donec quam",
      "child": [
        {
          "text": "SUMMERY: FELIS, ULTRICIES NEC.",
          "color": "green"
        }
      ]
    },
    {
      "text": "3. Pellentesque eu, pretium quis,sem. Nulla consequat massa quis enim. Donec pede",
      "child": [
        {
          "text": "SUMMERY: ET MAGNIS DIS PHASELLUS VIVERRA NULLA",
          "color": "blue"
        }
      ]
    },
    {
      "text": "vulputate eget, arcu. In enim justo, rhoncus ut, imperdiet a, venenatis vitae, justo. Nullam dictum felis eu pede MOLLIS PRETIUM.",
      "child": []
    }

  ]
  constructor() { }
}

App HTML代码

代码语言:javascript
复制
<hello name="{{ name }}"></hello>
<p>
    Start editing to see some magic happen :)
</p>
<div>
    LOREM IPSUM DOLOR SIT amet,
    <div *ngFor="let pText of data; let i=index">
        <p>{{pText.text}}</p>
        <div *ngFor="let cText of pText.child;">
            <p [ngStyle]="{color: cText?.color}" style="padding-left: 20px">{{cText.text}}</p>
        </div>
    </div>
</div>

这是一个在线演示

如果我不能了解你的情况,请告诉我。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54663113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档