2014-01-20 82 views
0

你會怎麼做?測試字符串是否包含單個反斜槓?

我需要測試,如果

一)將字符串包含兩個連續的反斜槓

b),如果沒有,測試,如果有至少一個反斜槓

if(test.indexOf("\\") >= 0) seems to hit on a string that's "ss\\ss", but I have a feeling that's incorrect. I think it's really just testing for 1 backslash. 

和AS3沒有按」讓你做if(test.indexOf(「\」)> = 0),因爲單個反斜槓轉義你的代碼的其餘部分。

這是用於測試ID3標籤可以是單或雙反斜線是否存在等,如一些編輯器使用無論是作爲一個標籤如類體裁中多標籤讀取一個分隔符:搖滾\流行或搖滾\流行

謝謝!

回答

-1

嘗試

如果(s.indexOf( 「\\」)> - 1){

//有兩個或更多個連續的反斜槓

}否則如果(s.indexOf( 「\」)> - 1){

//恰好有一個反斜槓

}

+0

這是完全錯誤的。我建議你再看看你的ActionScript技巧。這幾乎就好像你沒有首先閱讀這個問題 –

0

的單個b ackslash轉義只是結束引號,這使得你的代碼的其餘部分是字符串的一部分。在字符串中指定反斜槓的方法是使用另一個反斜槓進行轉義。

例如,

trace("Hello \\ World"); //Output: Hello \ World 
trace("Hello \\\\ World"); //Output: Hello \\ World 

底線:當你想一個反斜槓,在字符串中正確的順序是\\。當你想要兩個時,只需要將相同的序列放兩次。在你的情況下,代碼會是這樣的:

if(test.indexOf("\\\\") >= 0) { 
    //test contains two backslashes 
} else if(test.indexOf("\\") >= 0) { 
    //test contains one backslash 
} 

您還可以通過使用下面的代碼,如果反斜槓的數量並不重要,你正則表達式做到這一點。

if(/\\{1,2}/.test(string_to_test)) { 
    //string_to_test contains one or two occurrences only. 
} 

當然,如果反斜槓的數量並不重要(你至少需要一個),然後只檢查一個反斜槓也將是足夠的

相關問題