Php 如何在字母之间插入连字符而不是换行符?

Php 如何在字母之间插入连字符而不是换行符?,php,javascript,jquery,Php,Javascript,Jquery,我想做的是,当单词出现在行尾时,将单词分成两个单词,并在换行前插入连字符。它类似于标记,但不插入任何内容。 示例: Java- <--- I want to insert this hyphen before line-break Script Java-看起来有一些。这对你有用吗?如果你想在客户端完成,你需要一个断字插件。原因是,需要有一个断字规则字典来遵循,而这并不是简单地包含在浏览器中。[更新:虽然,这一说法已经部分错误!Chris的链接显示支持有限(非常有限,但仍然…有希望!)

我想做的是,当单词出现在行尾时,将单词分成两个单词,并在换行前插入连字符。它类似于
标记,但不插入任何内容。
示例:

Java-  <--- I want to insert this hyphen before line-break
Script

Java-看起来有一些。这对你有用吗?

如果你想在客户端完成,你需要一个断字插件。原因是,需要有一个断字规则字典来遵循,而这并不是简单地包含在浏览器中。[更新:虽然,这一说法已经部分错误!Chris的链接显示支持有限(非常有限,但仍然…有希望!)。]

我发现了一个jQuery插件:我知道我以前在项目中使用过一个(甚至可能是这个)。当然,它会将连字符插入到节点的内容中,但内容不需要包含连字符,连字符是在DOM就绪后由函数计算的

规则是否足够广泛,足以打破“规范”之外的词语,这是另一个问题


旁注:JavaScript是一个专有名词,应该排除在连字号之外。不过,我想这只是你头脑中的一个例子

此函数应该可以解决您的问题
它插入软连字符|$shy转换为“长”字


  • pText=您的字符串
  • pMax=一个单词中每X个字符插入一个软连字符

函数连字符(pText,pMax){
var t=pText.split(“”);

对于(i=0;i您是否希望在用户调整浏览器大小时自动移动连字符?(此外,第二个示例中的连字符会导致难以阅读的副本-为什么要这样做?)我认为在一般情况下使用javascript很难做到这一点,添加连字符可能会更改布局,并可能将已插入的连字符移动到错误的位置。插入的连字符需要能够识别(以便在调整窗口大小或其他布局更改时重新连字符)因此,它们可能应该位于具有适当类的SPAN元素中(例如insertedHyphen)。正如在一个答案中指出的,你需要一个,在行将满之前,你不能简单地添加字符,插入一个连字符然后继续。软连字符
­;
可以帮助你吗?Thnx!我可能会在不久的将来使用它,但现在我选择jQuery插件@Greg suggestedye,“JavaScript”是我想出来的!我完全忘记了jQueryy插件几乎可以满足您的所有需求。Thnx插件!
Ja- <---- Same here
vaScript
function hyphen(pText, pMax){
        var t = pText.split(" ");
        for(i=0; i<t.length; i++){
                if(t[i].length<pMax){
                        var w = t[i]
                        var re = new RegExp("(.{"+pMax+"})","g");
                        if(w.length<pMax+3){
                                var pos = t[i].length - 3;
                                re = new RegExp("(.{"+ pos +"})","g");
                        }
                        t[i] = w.replace(re,"$1"+&shy;);
                }
        }
        return t.join(" ");
}