2013-12-19 46 views
0

我正在處理一個輸入字段需要自動在「00」和a-z或A-Z之間添加空格的表單。JavaScript:使用替換在a-z之前的「00」之後添加空格A-Z

例如:"300A""300 A""200b""200 b"

下面是的,我一直在努力的代碼。我已經做了一些研究了,但是JavaScript技巧很差,花了很長時間。

replace(/('00')([a-z][A-Z])/g, '$1 $2'); 

我很感激幫助。

+2

'/(00)([AZ])/ gi' –

+0

如果下面的答案之一*的回答*你的問題,堆棧溢出的工作方式,您可以通過點擊下一個對勾標記爲「接受」到它。更多:http://meta.stackexchange。com/questions/5234/how-does-accepting-an-answer-work –

回答

3

你是真的接近:

var str = "....whatever..."; 
str = str.replace(/(00)([a-zA-Z])/g, '$1 $2'); 

或者交替,你可以使用i標誌(忽略大小寫):上述的

var str = "....whatever..."; 
str = str.replace(/(00)([a-z])/gi, '$1 $2'); 

鍵位:

  1. 保存結果(你沒有顯示你是如何調用0的,但不保存結果是一個常見的錯誤)。

  2. '圍繞00

  3. 您有兩個獨立的字符類別,分別爲[a-z][A-Z]。所以它一直在尋找00,然後是a-z範圍內的某些內容,其次是,其他的範圍是A-Z

+0

我認爲引號也必須消失 –

+0

@Tim:我剛剛看到他們,是的,謝謝。點擊刷新。 :-) –

+0

好的,我可以使用替代方案,因爲案件並不重要。感謝您的幫助。 – MustacheHam

3

你的正則表達式尋找"3'00'aA"不是"300A"

嘗試

replace(/(00)([a-zA-Z])/g, '$1 $2'); 
+0

+1爲開場線,很好放。 –

+0

這個效果很好。謝謝。 – MustacheHam

1

這裏有您需要什麼:

yourString.replace(/(00)([a-zA-Z])/g, '$1 $2') 
// OR 
yourString.replace(/(00)([a-z])/gi, '$1 $2') 

你有兩個問題與您正則表達式:

  • '00'尋找'字符以及00

  • [a-z][A-Z]查找任何小寫字母后跟大寫字母。在與[a-zA-Z]相同的一組方括號內組合兩個範圍,或者僅使用[a-z],並將i標誌添加到正則表達式以使其不區分大小寫。

+0

謝謝你爲我解釋這個。我更好地理解這一點。 :) – MustacheHam

相關問題