0

给定

string = 'Stackoverflow is awesome. It answers all my questions';
string = 'Stackoverflow. Q and A site';

我可以在句号之前得到一切string.split('.')[0];

但是我只想在句号出现在一定数量的字符之后才这样做,否则会在句号之前返回所有内容。

我正确地需要一个正则表达式来做到这一点,但不知道如何。

4

3 回答 3

4

/^.{20,}?\./应该这样做。^告诉它开始查看搜索字符串的开头,第一个意味着.匹配任何字符,它{20,}是一个量词,表示“至少 20”,并且?使其匹配尽可能少(否则它将返回所有内容最后一个点)。最后\.匹配一个文字点。

于 2013-01-10T03:18:23.630 回答
1

最简单的方法应该是

var result = string.split('.')[0].length > 20 ? string.split('.')[0] : string;
于 2013-01-10T03:19:40.050 回答
1

不需要正则表达式。

你可以这样做:

function trimToDot(s) {
    var head = s.split('.')[0];
    return ( head.length > 20 ) ? head : s;
}
于 2013-01-10T03:24:13.657 回答