Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript HTML中多语言段落字体样式的处理_Javascript_Html_Css_Fonts - Fatal编程技术网

Javascript HTML中多语言段落字体样式的处理

Javascript HTML中多语言段落字体样式的处理,javascript,html,css,fonts,Javascript,Html,Css,Fonts,我有一个网页,主要由波斯语内容组成,在一些段落中有一个或几个英语单词。内容是自动生成的,我不能从我的HTML源代码更改它。 我需要检测这些英文单词的位置,并给它们font size:xx前者的原因是我的英文字体——我没有选择,改变它是不可能的——看起来比我的波斯语字体大,它必须比我分配给每页波斯语字体的字体大小小一些像素。 下面是一个例子: <span class="common">سلام دنیا (helo world)</span> 我无法为“hello wor

我有一个网页,主要由波斯语内容组成,在一些段落中有一个或几个英语单词。内容是自动生成的,我不能从我的HTML源代码更改它。 我需要检测这些英文单词的位置,并给它们
font size:xx前者的原因是我的英文字体——我没有选择,改变它是不可能的——看起来比我的波斯语字体大,它必须比我分配给每页波斯语字体的字体大小小一些像素。
下面是一个例子:

<span class="common">سلام دنیا (helo world)</span>
我无法为“hello world”部分指定不同的字体大小

由于页面内容是通过从DB获取数据的脚本代码生成的,因此我无法手动为英语单词提供任何嵌入样式,比如用
标记将其包围。 有没有什么方法可以自动检测英语单词并赋予它们风格——也许可以指定一个类-


我们将非常感谢您的任何帮助。

您可以通过搜索英文字符序列来操作
DOM
,并使用自己的
span
包装这些序列

这不是完整的解决方案,但您可以这样做:

document.queryselectoral(“span”).forEach(函数(el){
el.innerHTML=el.innerText.replace(/[a-z]+/g,'$&');
});
.common{
字号:26px;
字体系列:'Arial';
}
.不寻常{
字体大小:36px;
字号:600;
}

直升机世界(helo world)
上述答案有效。为了进一步使用,我提供了这个想法的角度版本。希望这能对将来的人有所帮助

.directive( 'showData', function ( $compile ) {
    return {
        scope: true,
        link: function ( scope, element, attrs ) {
            var el;
            var farsi = 0;

            attrs.$observe( 'template', function ( tpl )
            {
                //var tpl = attrs.template;
                //if ( angular.isDefined( tpl ) )
                {
                    // compile the provided template against the current scope
                    //now work on tpl:

                    function containASCII(str){
                        var flag_only_ascii = 1;
                        var flag_contain_ascii = 0;
                        for(var i=0;i<str.length;i++){

                            if(str.charCodeAt(i)<127){
                                flag_contain_ascii = 1;
                            }
                            else
                            {
                                flag_only_ascii = 0;
                            }
                        }

                        if(flag_only_ascii == 1 && flag_contain_ascii == 0)
                            return 1; //just ascii

                        if(flag_only_ascii == 0 && flag_contain_ascii ==1)
                        {
                            return 2;//combination
                        }

                        if(flag_only_ascii == 0 && flag_contain_ascii == 0){
                            return 0; //just english...
                        }

                        if(flag_only_ascii == 1 && flag_contain_ascii == 1){
                            return 3; //other
                        }


                    };

                    if(scope.TranslationValue == 1)
                    {
                        var split_span = tpl.split(" ");
                        for (i = 0 ; i < split_span.length ; i++)
                        {
                            var str_1 = split_span[i];
                            if(containASCII(str_1) == 3){
                                //if(str_1.search("<em2 ") == -1)
                                split_span[i] = "<em2 class='uncommon'>" + str_1 + "</em2>";
                            }
                        }

                        var final_str = split_span.join(" ");
                    }
                    else
                    {
                        final_str = tpl;
                    }


                    final_str = '<span rep-eng-text-font>' + final_str + '</span>';



                    element.html(final_str);

                    // add the template content

                }
            });
        }
    };
})
指令('showData',函数($compile){ 返回{ 范围:正确, 链接:函数(范围、元素、属性){ var-el; var-farsi=0; 属性$observe(‘模板’,功能(tpl) { //var tpl=attrs.template; //如果(角度定义(tpl)) { //根据当前范围编译提供的模板 //现在,关于第三方物流的工作: 函数包含ASCII(str){ var flag_only_ascii=1; var标志包含ascii=0;
对于(var i=0;i如何检测英语单词?ASCII或ISO-8859-1中存在的任何字符?@PeterMader根据此链接,每种语言都有一系列字符。
.directive( 'showData', function ( $compile ) {
    return {
        scope: true,
        link: function ( scope, element, attrs ) {
            var el;
            var farsi = 0;

            attrs.$observe( 'template', function ( tpl )
            {
                //var tpl = attrs.template;
                //if ( angular.isDefined( tpl ) )
                {
                    // compile the provided template against the current scope
                    //now work on tpl:

                    function containASCII(str){
                        var flag_only_ascii = 1;
                        var flag_contain_ascii = 0;
                        for(var i=0;i<str.length;i++){

                            if(str.charCodeAt(i)<127){
                                flag_contain_ascii = 1;
                            }
                            else
                            {
                                flag_only_ascii = 0;
                            }
                        }

                        if(flag_only_ascii == 1 && flag_contain_ascii == 0)
                            return 1; //just ascii

                        if(flag_only_ascii == 0 && flag_contain_ascii ==1)
                        {
                            return 2;//combination
                        }

                        if(flag_only_ascii == 0 && flag_contain_ascii == 0){
                            return 0; //just english...
                        }

                        if(flag_only_ascii == 1 && flag_contain_ascii == 1){
                            return 3; //other
                        }


                    };

                    if(scope.TranslationValue == 1)
                    {
                        var split_span = tpl.split(" ");
                        for (i = 0 ; i < split_span.length ; i++)
                        {
                            var str_1 = split_span[i];
                            if(containASCII(str_1) == 3){
                                //if(str_1.search("<em2 ") == -1)
                                split_span[i] = "<em2 class='uncommon'>" + str_1 + "</em2>";
                            }
                        }

                        var final_str = split_span.join(" ");
                    }
                    else
                    {
                        final_str = tpl;
                    }


                    final_str = '<span rep-eng-text-font>' + final_str + '</span>';



                    element.html(final_str);

                    // add the template content

                }
            });
        }
    };
})