2015-10-08 36 views
0

我有一個字符串中的文本,說一些Lorem Ipsum的東西。 我想匹配相對於給定位置左側的第一個空白。找到相對於字符串中給定位置的左側第一次出現空白字符

示例:Lorem ipsum dolor sit amet...index: 10

從索引10左將Loremipsum之間的一個第一空白。

背後的故事:我想打破特定長度的文本(svg - 沒有自動中斷)。因此,我只測量整個文本長度(速度問題)並估計哪個位置將成爲一行。因爲我想在詞邊界處分割,所以我需要找到最接近的左空格。

是否有任何線索與正則表達式可以做這樣的事情?

//編輯:詞邊界可能OFC不僅是一個空間,但也許一個標籤或某事(\s

+1

'str.lastIndexOf(「」,10)'? – dandavis

+0

哇 - 那很容易。我不知道lastIndexOf的第二個參數。當我想抓住每個's'而不是隻有空格時,我會做什麼? – Fuzzyma

+0

對於使用正則表達式來說這很複雜,但是在使用indexOf之前可以用純空格替換左側,並且它的執行速度應該比RegExp快。 – dandavis

回答

2

你可以做這樣的事情......

//your parameters are here 
var originalString = "a really long string to abbreviate"; 
var maxLength = 15; 

//the actual logic that uses your parameters 
var str = originalString.substring(0, maxLength); 
var lastIndex = str.lastIndexOf(" "); 
str = str.substring(0, lastIndex); 

更新回答滿足您的新問題:

//your parameters are here 
var originalString = "a really long string to abbreviate"; 
var maxLength = 15; 

//the actual logic that uses your parameters 
var str = originalString.substring(0, maxLength); 
str = str.replace(/\s+\S*$/, "") 
console.log(str); 

由於信貸的@ user187291 here的是R egex。給他/她一個upvote!

+0

我編輯了我的問題以表明我需要匹配在正則表達式中匹配'\ s'的所有空格 – Fuzzyma

+0

您的正則表達式匹配最後一個空格是很好的。有沒有辦法一個接一個匹配所有其他連續空格?所以首先是最後一個,然後是第二個,等等...... – Fuzzyma

+0

我並不是很瞭解這個問題,但我確定有這個問題。儘管如此,我還沒有離開我的頭頂。我現在回答了這篇文章的兩個不同的問題。我覺得你要求我打出一個移動的目標!如果我試圖回答的問題不斷變化,不知道如何讓我的答案得到接受: -/ – Marc

相關問題