![](/img/trans.png)
[英]How to get the last character(s) of a single, specified, line of a multiline text in JavaScript?
[英]How to get last line of multiline text with matching regex?
我現在正在尋找幾個小時如何獲取多行文本的最后一行。
Lorem ipsum dolor sit amet,
Praesent libero. Sed cursus ante
dapibus diam. Sed nisi. Nulla
imperdiet. Duis sagittis ipsum.
我會得到:
imperdiet. Duis sagittis ipsum.
我嘗試過像這樣的正則表達式:
var y = x.match(/[\S]+$/);
但它返回:
null
如何在javascript中使用正則表達式獲取多行文本的最后一行?
謝謝。
我對Regex不好。
但是,要回答這個問題,您可以使用split('\\n')
var myText = <your multi line text>;
var lines = myText.split('\n');
console.log(lines[lines.length - 1]); // This should print last line
根據您的JSFiddle,您必須采取倒數第二行,因為最后一行是EMPTY
var x=document.getElementsByTagName('p')[0].innerHTML;
var y = x.split('\n');
alert(y[y.length - 2]);
[\\S]+$
(對於\\S+$
來說很長),表示匹配字符串末尾的所有非空格。
由於您的字符串在最后一行的末尾有一個空格,因此不匹配任何內容。
即使您刪除了該尾隨空格,它也只會匹配ipsum.
只需使用: .*$
這取決於事實.
默認情況下不匹配換行符( (?s)
可以在需要時進行更改) 。
因此,它將匹配從最后一個換行符到字符串結尾的所有字符。
有關示例 ,請參見regex101.com 。
現在,如果文本在最后一行之后有一個或多個換行符,那么它實際上並不是最后一行,請改用.*\\s*$
。 參見演示 。
若要不捕獲末尾的空行,請使用捕獲組捕獲最后一個非空行: (.*)\\s*$
。 參見演示 。
使用正則表達式,您可以執行此操作
var text = your text goes here;
var regex = /\n.*$/;
match = regex.exec(text);
console.log(match[0].slice(1));
檢查以\\n
(換行符)開頭,然后以\\n
以外的結尾結束的匹配項,該匹配項將為您提供最后一行。 最后,只需從匹配項中刪除第一個字符,因為它將是開始\\n
(前一行的最后一個字符)。
請注意,這僅在文本實際上是多行-包含\\n
時才有效,因此您也應該首先測試它。
if (text.indexOf('\n') == -1) return text;
如果為空,則應使用(.+)([^\\s])
忽略最后一行:
對於多段:
var u = document.getElementsByTagName('p'); for (var i = 0; i < u.length; i++) { var z = u[i].innerHTML.match(/(.+)([^\\s])/g); console.log(z[z.length - 1]); }
<p> Lorem ipsum dolor sit amet, Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla imperdiet. Duis sagittis ipsum. </p><p> Lorem ipsum dolor sit amet, Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla imperdiet. Duis sagittis ipsum. </p><p> Lorem ipsum dolor sit amet, Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla imperdiet. Duis sagittis ipsum. </p><p> Lorem ipsum dolor sit amet, Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla imperdiet. Duis sagittis ipsum. </p>
對於單人:
var x=document.getElementsByTagName('p')[0].innerHTML; var y = x.match(/(.+)([^\\s])/g); console.log(y[y.length -1]);
<p>Lorem ipsum dolor sit amet, Praesent libero. Sed cursus ante dapibus diam. Sed nisi. Nulla imperdiet. Duis sagittis ipsum. </p>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.