突出显示HTML页面或WordPress编辑器中的不间断空格

时间:2015-04-19 13:33:27

标签: javascript jquery regex wordpress editor

在WordPress中编辑时,我有时会在标题中使用不间断的空格,以便单词保持在一起。当我保存时,不间断的空间在那里,但它们看起来像普通的空间,所以我无法看到它们。 此外,当我输入帖子的正文时,WordPress会创建不间断的空格,我必须以某种方式删除它。

我认为很容易创建一个使用jQuery来突出显示网页或编辑器中不间断空格的书签。但是,我对正则表达式并不好,或者可能还有其他我做错的事情。这是jQuery代码:

    $('p').html($('p').html().replace(/ [\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000]/g, '<span class="red">&nbsp;</span>'));

这里是一个小说: https://jsfiddle.net/y18e0c1w/

======

Maraca帮我出去了(见下文)。我用他的代码创建了bookmarklet,并在span中添加了一个白色空间:nowrap,这样你仍然可以看到高亮显示它是否在一行的末尾。这是:

javascript:function%20escapeRegExp(e){return%20e.replace(/([.*+?^=!:${}()\]\[\/\\])/g,"\\$1")}function%20replaceAll(e){return%20e.string.replace(new%20RegExp(escapeRegExp(e.search),"g"),e.replace)}jQuery("body").html(replaceAll({string:jQuery("body").html(),search:"&nbsp;",replace:'<u%20style="background:#FF0;white-space:nowrap">%20</u>'}));

请记住,它依赖于已经在页面上加载的jQuery。它对WordPress后端并不好玩,但它适用于前端,这对我现在有好处。希望其他人发现这也很有用。

1 个答案:

答案 0 :(得分:0)

得到它:https://jsfiddle.net/y18e0c1w/2/

function escapeRegExp(s) {
    return s.replace(/([.*+?^=!:${}()\]\[\/\\])/g, '\\$1');   
}

function replaceAll(p) {
 return p['string'].replace(new RegExp(escapeRegExp(p['search']), 'g'), p['replace']);   
}

$('p').html(
    replaceAll({
        string: $('p').html(),
        search: '&nbsp;',
        replace: '<span class="red"> </span>'
    })
);

前两个函数只是辅助函数。然后我将&nbsp;替换为一个跨度,即它。

请注意,我在span中使用了一个普通空格,因为重复执行没有问题。否则,您将使用每个执行的span标记包装&nbsp;

全身快速而肮脏的解决方案:https://jsfiddle.net/y18e0c1w/7/