编辑不需要的单词

时间:2017-10-25 17:31:17

标签: javascript

我可以更改不需要的单词的颜色但是如何用星号替换不需要的单词的最后3个字母?

文本:

  经常当我去洗手间时,badWordOne来了   出于我的坏话二。

的Javascript

$('#example').profanityFilter({
customSwears: ['badWordOne', 'badWordTwo'],
filter: false,
profaneText: function(data) {
data.forEach(function(element, index) {
var str = '<span class="red">' + element + '</span>';
$('#example').html($("#example").html().replace(element, str));
});
}
});

1 个答案:

答案 0 :(得分:2)

例如,您可以编写一个函数,您可以在其中传递要从末尾用星号替换的字符串和符号数。

function asteriskize(str, count = 3) {
    return str
        .substring(0, str.length - count) + 
        (new Array(count)).fill('*').join('')
}

它的工作原理如下:

const str = 'badWordOne'
const processed = asterskize(str) // processed = 'badWord***'

或者,正如我所说,你也可以传递字符串末尾的符号数来代替:

const str = 'badWordThree'
const processed = asteriskize(str, 5) // processed = 'badWord*****'

而且,你可以像profanityFilter插件一样使用它:

$('#six').profanityFilter({
    customSwears: ['badWordOne', 'badWordTwo'],
    filter: false,
    profaneText: function (data) {
        data.forEach(function (element, index) {
            const str = '<span class="red">' + asterskize(element) + '</span>';
            $('#six').html($("#six").html().replace(element, str));
        });
    }
});

Here is the demo这个插件,请仔细阅读,