2014-01-08 138 views
0

我試圖在每個句點(句號)後添加一個空格。但是,如果它不是一個小數點或JavaScript我用下面的正則表達式的abbreviation.Using:正則表達式Javascript查找/替換

text.replace(/([^.]*?[a-zA-Z][^.0-9]*?)\.([\S][^.]*?)|([^.]*?[0-9])\.([^\s0-9][^.]*?)/g, "$1. $2") 

樣品字符串:

一個蘋果,day.keeps醫生away.apple 3.0只是 amazing.Iphone 5也不錯。

輸出:

一天一個蘋果。讓醫生遠離。蘋果3.0簡直太神奇了。 I. 也不錯。

手機消失了一些奇怪的原因。我用regexpal.com,它能夠按預期找到這些部分。更換有問題。

此外,我會很感激一些偉大的查找和替換調試器的建議。

+0

什麼是縮寫示例?你的意思是一個縮寫嗎? – elclanrs

+1

你打算如何區分句子末尾和點語法代碼(foo.bar)或電子郵件地址([email protected])等之間的區別?正則表達式不會幫助你。 – Robusto

+0

在測試中添加一個URL可以幫助 – Rob

回答

2

你還沒有逃過這段時間,所以有些角色被剝離出來。您也離開$3$4。由於它們完全相互交替,以下內容應該可以工作(並且將與您的示例一起使用):

replace(/([^.]?[a-zA-Z][^.0-9]?)\.([\S][^.]?)|([^.]?[0-9])\.([^\s0-9][^.]*?)/g, 
    "$1$3. $2$4")