2010-05-03 48 views
1

我使用正則表達式來計算一行中的總空格(第一次出現)。
match(/^\ s * /)[0] .length;向後讀取一行

然而這從頭到尾讀它,我怎麼從頭到尾讀它。

謝謝

+0

我不確定一個正則表達式是計算空間的最佳方法。當然,一個簡單的循環會更容易理解,更易於維護? – 2010-05-03 00:13:08

+2

... SO錯誤申請正則表達式的問題的數量是令人難以置信的。 – Stephen 2010-05-03 00:14:47

+6

也許我們可以讓SO開發人員編寫一個正則表達式來捕獲糟糕的正則表達式帖子。 – 2010-05-03 00:16:05

回答

1

你只想知道空間之前有多少個字符?如果是這樣,這是否不符合您的需求。

var str = 'The quick brown fox jumps'; 

var first = str.indexOf(' '); 
var last = str.lastIndexOf(' '); 

alert('first space is at: ' + first + ' and last space is at: ' + last); 
+0

像這樣的事情「Hello World <4 spaces> Test」會返回'4'空格, – Jimmy 2010-05-03 00:17:21

+0

@Jimmy在這種情況下,wombleton的第二個正則表達式會返回正確的值 – 2010-05-03 01:37:06

5

你可以這樣做:

function reverse(str) { 
    return str.split('').reverse().join(''); 
} 

要使用它:

var str = 'Hello World'; 
alert(reverse(str)); 

它是如何工作的,我們用一個空字符分割字符串把它變成一個數組,然後我們顛倒了數組的順序,然後我們將它們全部重新組合起來,不使用字符作爲膠水。所以我們得到警報dlroW olleH

3

您是否試圖找到一行上尾部空格的數量?

s.match(/\s*$/)[0].length; 

或最後一個空間中,即使有別的結尾:

s.match(/(\s*)[^\s]*$/)[1].length 
0

我使用正則表達式來計算總的空間在一條線上

那麼,爲什麼你關心它重要的方式嗎? 「aaa」包含3 a是否從第一個或最後一個開始。 3仍然是3 ...