从文本开头删除前导点

时间:2014-02-11 10:58:30

标签: javascript jquery regex

我有一些我需要定位的文字有一些主要的点,我发现一些代码可以使用单词和间距,但是无法使这个代码适用于前导点。我玩过正则表达式,但它在很大程度上制动了它。

这就是我所拥有的:

$(document).ready(function(){
 $('p').each(function () {
     var $this = $(this);
     $this.html($this.text().replace(/\b..\b/g, '<span style="display:none">..</span>'));
   });
});

http://jsfiddle.net/Xg3Ej/

有人能让我走上正确的道路吗?

6 个答案:

答案 0 :(得分:7)

.在正则表达式中具有特殊含义,它将匹配任何字符。你需要转义它,以便正则表达式匹配文字字符\.

$this.text().replace(/^(\.+)/g, '<span style="display:none">$1</span>')

http://jsfiddle.net/Xg3Ej/6/

答案 1 :(得分:3)

在正则表达式中使用^来查看字符串的开头。

/^\.\./g

小提琴:http://jsfiddle.net/Xg3Ej/8/

注意:感谢Andrew Mackrodt指出逃脱..

答案 2 :(得分:1)

如果您只想从开头使用^删除字符,请转义点\.,否则.匹配任何字符。最后,使用+表示匹配一个或多个点。

/^\.+/g

答案 3 :(得分:0)

试试这个

这将捕获以(..)

开头的字符串

。 =&GT;表示正则表达式中的单个字符。因此,它使用反斜杠进行转义。

示例:

.. jfghhfg

$this.html($this.text().replace(/^\.\./g, '<span style="display:none">..</span>')); 

以下是demo

答案 4 :(得分:0)

为什么不简单地尝试这个:

$(document).ready(function(){
$('p').each(function () {
    var $this = $(this);
   $this.html($this.text().replace(/^\.{2}/g, ''));
    });
});

小提琴:http://jsfiddle.net/Xg3Ej/9/

答案 5 :(得分:0)

这也可以http://jsfiddle.net/Xg3Ej/11/

$this.html($this.text().replace('..', '<span style="display:none">..</span>'));