如何在段落的第一行之后剪切字符串

Zhe*_*hen 29 javascript string cut

我有如下所示的字符串:

XXX:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur cursus lacus sed
justo faucibus id pellentesque nunc porttitor. Sed venenatis tempor dui, nec mattis dolor
ultrices at. Duis suscipit, dolor sed fringilla interdum, magna libero tempor quam, sed
molestie dui urna sed tellus.
Run Code Online (Sandbox Code Playgroud)

如何在第一行添加限制并剪掉字符串?(使用javascript).

我期望的最终结果如下:

XXX:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur...
Run Code Online (Sandbox Code Playgroud)

Tom*_*lak 67

var firstLine = theString.split('\n')[0];
Run Code Online (Sandbox Code Playgroud)

  • @DavidThomas我*知道*"包装"这个词是什么意思.它与JavaScript字符串无关(即,在此上下文中没有任何意义*).它在屏幕上的显示不会反映在String对象中,因此您无法"拆分". (6认同)
  • 你让它变得复杂,不是吗?;)两次调用slice(或子字符串).尚未发明"做我的意思"API. (4认同)
  • @大卫·托马斯:*“包裹” *?这意味着什么?字符串中是否有分隔符,或者没有分隔符。 (2认同)
  • @Wilt当然有,如果你关心那个特例:`theString.slice(0,theString.indexOf('\n'))` (2认同)

Wil*_*ilt 36

使用可选的限制参数可以提高性能

Tomalak他的答案是正确的,但是如果你真的只想匹配第一行,那么传递可选的第二个limit参数会很有用.像这样你可以防止在返回第一个匹配之前将一个长字符串(有数千行)分割到结尾.

通过设置可选项limit,1我们告诉方法一旦找到第一个匹配就返回结果,结果是性能提高.

var firstLine = theString.split('\n', 1)[0];
Run Code Online (Sandbox Code Playgroud)

阅读有关限制参数的更多信息,例如MDN文档中的示例


Ale*_*pin 11

如果有实际的行返回,而不仅仅是某种自动换行,你可以这样做:

str = str.substr(0, str.indexOf("\n"));
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/f6uBT/

  • 如果 str 中没有换行符,则返回空字符串。不确定每个人都希望如此。 (2认同)

uje*_*tor 5

function getFirstLine(str){
    var breakIndex = str.indexOf("\n");

   // consider that there can be line without a break
    if (breakIndex === -1){
        return str;
    }

    return str.substr(0, breakIndex);
}

getFirstLine('first line\nsecond line'); // first line

getFirstLine('text without line break'); // text without line break
Run Code Online (Sandbox Code Playgroud)