我有一个字符串,我想要改变一些单词。 我写下一个功能。如果要在我的字符串中单独更改单词,则此工作正常。但如果这个词多于一个,它只会最后改变。
import { Component } from '@angular/core';
@Component({
selector: 'my-app',
template:
<kendo-maskedtextbox
name="value1"
[(ngModel)]="value"
[mask]="mask"></kendo-maskedtextbox>
})
export class AppComponent {
public value: string;
public mask: string;
public maskValidation: boolean = true;
ngOnInit(){
this.mask = "99 999";
}
}
});
答案 0 :(得分:0)
该功能不仅仅改变最后一个字。问题是每次更换单词时都会替换#main-arr__last
中的html。
这是一个更好的解决方案:
$(document).ready(function() {
var sometext = $('#main-arr').text();
sometext = replaceAll(sometext, ' you ', ' error! ');
sometext = replaceAll(sometext, ' he ', ' error! ');
sometext = replaceAll(sometext, ' she ', ' error! ');
var someHtml = toHtml(sometext, 'red');
$('#main-arr__last').html(someHtml);
});
function replaceAll(str, search, replacement){
return str.replace(new RegExp(search, 'g'), replacement);
}
function toHtml(str, clazz){
return replaceAll(str, 'error!', '<span class="' + clazz + '">error!</span>');
}
首先我们实现一个function replaceAll
来替换文本中所有出现的单词,然后我们将所有单词的文本,你,他和她,在我们的情况下,替换为错误! / p>
然后我们实施了function toHtml
以涉及所有'错误!'带有确定类的跨度中的单词作为参数传递。