我正在使用以下脚本从文本中删除变音符号,而我想知道是否有一种方法可以用html或PHP为变音符号着色而不是将其删除(示例为阿拉伯语,但希伯来语,法语,甚至是英语等等。)
JavaScript代码:

$(document).ready(function(){

    var bodyText = $('#page_content').html();

    function replaceChars()
    {
        newBodyText = bodyText.replace(/َ/gi,'');
        newBodytext = newBodyText.replace(/ً/gi,'');
        newBodyText = newBodyText.replace(/ُ/gi,'');
        newBodyText = newBodyText.replace(/ٌ/gi,'');
        newBodyText = newBodyText.replace(/`/gi,'');
        newBodyText = newBodyText.replace(/ِ/gi,'');
        newBodyText = newBodyText.replace(/ٍ/gi,'');
        newBodyText = newBodyText.replace(/،/gi,'');
        newBodyText = newBodyText.replace(/ْ/gi,'');
        newBodyText = newBodyText.replace(/ّ/gi,'');
    }


    $('.testMe').toggle(function() {

    replaceChars();

    $('#page_content').html(newBodyText);
    $('#actionDiacritics').html('Show');
    }, function() {
    $('#page_content').html(bodyText);
    $('#actionDiacritics').html('Hide');
    });

});

运行演示:http://jsfiddle.net/8jAL8/29/
输入:لاَ تَتَعَجَّبُواٌ مِنْ هذَا:
javascript - 使用html/PHP中的javascript更改变音符号的颜色-LMLPHP
所需输出的示例:
javascript - 使用html/PHP中的javascript更改变音符号的颜色-LMLPHP
在Microsoft Word或LibreOffice中有一个选项可以做到这一点,我也找到了something here,但是第一个答案需要一个固定的文本才能起作用,第二个答案只是使整个文本的上部变色。

最佳答案

我的回答很粗略,如果您说不想使用“固定文本”时,您指的是绝对位置的文本(我认为您指的是“固定文本”,则可能不符合您的要求)无法动态输入一些文本)。

话虽这么说,您可以做的一件事情就是将相同的文本(使用z-index)放在红色的后面。当您想查看红色变音符号时,可以采用与当前操作类似的方式删除前面文字的变音符号。

的HTML

<a class="testMe" id="actionDiacritics" style="cursor: pointer;">Highlight</a>

<br /><br />

<span style="font-size: 30pt">
<div id="page_content">
<span id="highlighted_diacritics">
لاَ تَتَعَجَّبُوا مِنْ هذَا
</span>
<span id="unhighlighted_diacritics">
لاَ تَتَعَجَّبُوا مِنْ هذَا
</span>
</div></span>

的CSS
#highlighted_diacritics {
    position: absolute;
    z-index:-1;
    color: red;
}

JS
    $(document).ready(function(){

        var bodyText = $('#unhighlighted_diacritics').html();

        function replaceChars()
        {
            newBodyText = bodyText.replace(/َ/gi,'');
            newBodytext = newBodyText.replace(/ً/gi,'');
            newBodyText = newBodyText.replace(/ُ/gi,'');
            newBodyText = newBodyText.replace(/ٌ/gi,'');
            newBodyText = newBodyText.replace(/`/gi,'');
            newBodyText = newBodyText.replace(/ِ/gi,'');
            newBodyText = newBodyText.replace(/ٍ/gi,'');
            newBodyText = newBodyText.replace(/،/gi,'');
            newBodyText = newBodyText.replace(/ْ/gi,'');
            newBodyText = newBodyText.replace(/ّ/gi,'');
        }


        $('.testMe').toggle(function() {

        replaceChars();

        $('#unhighlighted_diacritics').html(newBodyText);
        $('#actionDiacritics').html('Un-highlight');
        }, function() {
        $('#unhighlighted_diacritics').html(bodyText);
        $('#actionDiacritics').html('Highlight');
        });

    });

这是一个早期的小提琴:https://jsfiddle.net/8mfgmovj/

您可能会注意到,红色文本在黑色文本周围创建了一条线,不幸的是,在调整窗口大小之后,红色文本可能会以错误的位置结尾。

关于javascript - 使用html/PHP中的javascript更改变音符号的颜色,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46775536/

10-09 20:59