在WordPress中编辑时,我有时会在标题中使用不间断的空格,以便单词保持在一起。当我保存时,不间断的空间在那里,但它们看起来像普通的空间,所以我无法看到它们。 此外,当我输入帖子的正文时,WordPress会创建不间断的空格,我必须以某种方式删除它。
我认为很容易创建一个使用jQuery来突出显示网页或编辑器中不间断空格的书签。但是,我对正则表达式并不好,或者可能还有其他我做错的事情。这是jQuery代码:
$('p').html($('p').html().replace(/ [\u00a0\u1680\u180e\u2000-\u200a\u2028\u2029\u202f\u205f\u3000]/g, '<span class="red"> </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:" ",replace:'<u%20style="background:#FF0;white-space:nowrap">%20</u>'}));
请记住,它依赖于已经在页面上加载的jQuery。它对WordPress后端并不好玩,但它适用于前端,这对我现在有好处。希望其他人发现这也很有用。
答案 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: ' ',
replace: '<span class="red"> </span>'
})
);
前两个函数只是辅助函数。然后我将
替换为一个跨度,即它。
请注意,我在span中使用了一个普通空格,因为重复执行没有问题。否则,您将使用每个执行的span标记包装
。
全身快速而肮脏的解决方案:https://jsfiddle.net/y18e0c1w/7/