2012-11-09 160 views
1

我有一個給用戶很簡單的文本框。將字符串的一部分移動到字符串的另一部分

<textarea name="text">ENTER YOUR TEXT, DUDE!</textarea> 

有時,用戶可以輸入像這樣:

blablablatext blablabla $ 10 blablabla blablablatext 

這很好,但我想要做的是把美元符號,並自動將其放置數(反之亦然)後:

blablablatext blablabla 10 $ blablabla blablablatext 

基本上,我想要做的是:

  1. 檢測是否存在一個貨幣符號
  2. 檢測,如果數字出現在符號後
  3. 檢測,如果,例如,一個字母(或沒有)出現在數字之後
  4. 採取的貨幣符號,並將其放置在數字和字母之間(或者在數字之後,如果之後什麼也沒有)

這樣做的最佳方式是什麼?有這樣的可能嗎?

+0

由於您在第三點明確提到了「信件出現在數字後面」,因此第四點中的「將美元符號放在數字和其後面的字母之間」和「將美元符號放在數字後面」有什麼區別? – Passerby

+0

第三點,我只以「字母」爲例。它可以是除了你可能搜索的數字,文字,點,逗號之外的任何東西,或者像我在第四點中提到的「有點兒」一樣,什麼也沒有。這就是爲什麼我要麼在數字和例如字母之間,要麼在數字之後沒有任何其他字符時,就在數字之後。 對不起,困惑,希望清除它。我相應地改變了我的帖子。 – noClue

+0

你的3點和4點看起來可以合併成一個「將數字背後的符號」,因爲無論(如果有的話)出現在數字後面都沒有關係。這就是爲什麼我明確提出第三點來問你是否意味着什麼。 – Passerby

回答

2

你大概可以總結爲正則表達式這一切:

echo preg_replace('/\$\s*(\d+)(?=\s*[^$])/', '$1\$', $text); 

這僅僅是一個快速現成的,袖口例如,匹配一個$也許其次是一些空白後跟一個數字可能後跟一些空白,而不是另一個$,並用[編號] $替換它。我想推薦你​​。

+0

謝謝,那就是我一直在尋找的。只是在正確的方向稍微推動一下。 :)我相信我能想出一些東西。再次感謝! – noClue

相關問題