使用javascript / jQuery替换整个网页上的字符(空格)

时间:2010-02-18 07:09:25

标签: javascript jquery regex replace typography

所以我想出了替换函数,找到所有单字母“单词”(介词和连词等)并用 替换它们之后的空格以防止将这些字符留在最后线,应该像

myString.replace(/\s\w(?=\s)/,"$1 ")

现在如何将其应用于网页上的所有文字?我正在寻找一些通用解决方案,这是一个简单的函数,我放入<head>而无需更改网页中的任何其他内容。

非常感谢你。

3 个答案:

答案 0 :(得分:3)

你可以尝试这样的事情:

$('body').contents().filter(function(){ 
     return this.nodeType == 3;
}).each(function(){
   this.nodeValue = this.nodeValue.replace(/\s\w(?=\s)/,"$1&nbsp;");
});

基本上我们抓住body元素并获取其内容 - contents()方法将获取文本节点以及我们想要的元素。然后我们过滤nodeType,将集合减少到只有文本节点。然后我们做正则表达式替换。

答案 1 :(得分:2)

function replaceText(node)
{
  var current = node.nodeValue;
  var replaced = current.replace(searchpattern, replacepattern);
  node.nodeValue = replaced;
}
function traverse(node)
{
  var children = node.childNodes;
  var childLen = children.length;
  for(var i = 0; i < childLen; i++)
  {
    var child = children.item(i);
    if(child.nodeType == 3)//or if(child instanceof Text)
      replaceText(child);
    else
      traverse(child);
  }
}
function replaceAll()
{
  traverse(document.body);
}

从正文replaceAll()致电onload

<body onload="replaceAll()">

答案 2 :(得分:2)

var str = 'When you want to change the DispFormUrl'.replace(/ /g, '&nbsp;');
alert(str);

结果:“当您想要更改DispFormUrl”时