Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.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
使用jQuery选择段落中的所有标点符号并为其分配一个类?_Jquery - Fatal编程技术网

使用jQuery选择段落中的所有标点符号并为其分配一个类?

使用jQuery选择段落中的所有标点符号并为其分配一个类?,jquery,Jquery,我想更改段落中标点符号和其他符号的颜色。我有这样的想法: "Hello I'm a web & graphic designer." "Hello I<strong class="highlighted">'</strong>m a web <strong class="highlighted">&</strong> graphic designer <strong class="highlighted">.</

我想更改段落中标点符号和其他符号的颜色。我有这样的想法:

"Hello I'm a web & graphic designer."
"Hello I<strong class="highlighted">'</strong>m a web
<strong class="highlighted">&</strong> graphic designer
<strong class="highlighted">.</strong>"
$("body *").replaceText( /([,!@#$%^&*()\u9999])/gi, "<strong class='highlighted'>$1</strong>" );
我想得到这样的东西:

"Hello I'm a web & graphic designer."
"Hello I<strong class="highlighted">'</strong>m a web
<strong class="highlighted">&</strong> graphic designer
<strong class="highlighted">.</strong>"
$("body *").replaceText( /([,!@#$%^&*()\u9999])/gi, "<strong class='highlighted'>$1</strong>" );

有什么建议吗?

如果要更改的所有内容都有一个突出显示的类别,则可以执行以下操作:

"Hello I'm a web & graphic designer."
"Hello I<strong class="highlighted">'</strong>m a web
<strong class="highlighted">&</strong> graphic designer
<strong class="highlighted">.</strong>"
$("body *").replaceText( /([,!@#$%^&*()\u9999])/gi, "<strong class='highlighted'>$1</strong>" );
JavaScript

CSS


如果您需要手动添加类,请查看我制作的这个。这使用正则表达式将预定义标点符号包装为具有突出显示的类的。

您可以使用正则表达式替换:

txt = $('#the-paragraph').text();
txt = txt.replace(/(['&.e])/g,"<span class=\"highlighted\">$1</span>");
$('#the-paragraph').html(txt);

请参见此处的示例:

假设您的段落中没有其他html:

$("#paragraph").html(function (i, text) {
    return text.replace(/([&\.'])/g, "<strong class='highlighted'>$1</strong>");
});

我在我的一些项目中遇到了类似的问题,通过使用

在您的情况下,您可以使用如下插件:

"Hello I'm a web & graphic designer."
"Hello I<strong class="highlighted">'</strong>m a web
<strong class="highlighted">&</strong> graphic designer
<strong class="highlighted">.</strong>"
$("body *").replaceText( /([,!@#$%^&*()\u9999])/gi, "<strong class='highlighted'>$1</strong>" );

这将适用于您的整个页面。

或仅CSS:.高亮显示{color:red;}我认为它从一开始就没有任何类-代码片段是他想要的结果。代码更新以适应插入高亮显示的跨距。只需确保不在字符类中键入^;谢谢我怎样才能改变它,使它适用于整个页面?你必须为你想要格式化的每个段落运行它。例如,您可以使用诸如p或p.formatMe之类的选择器,也可以定义一个函数,将任何jQuery对象作为参数并对其执行替换。我的代码段使用.text来提取要格式化的文本,这意味着任何嵌套的HTML都会在过程中丢失,因此请确保段落中没有嵌套的元素。如果改用.html,嵌套的html不会被销毁,但也会被替换,这可能会破坏它。正则表达式中的单引号看起来像是属于字符类,对吗?还有一件事:如果要替换=?它们不会在任何嵌套的HTML代码中被替换吗?