因系統奇怪的規則,需要將一串字串中若有連續數字(大於10位數,通常為手機號碼),
必須將其每四碼加一個"-"符號後輸出
例如原本字串為:「因有急事找您,我的手機為0910123456,請回電。」
輸出後變成:「因有急事找您,我的手機為0910-1234-56,請回電。」
由於本人尚屬新手,希望能盡量解釋的詳細一點...有程式碼更好Q_Q
煩請高手解答,謝謝!
抓取數字:開頭09,並且為10碼長、10碼全為數字!
作者:
tkdmaf (皮皮快跑)
2014-07-02 16:32:00(1)正規表達式 (2)字串長度計算後插入符號。
作者:
alog (A肉哥)
2014-07-02 16:33:00trim(preg_replace('/(\d{4})/', '$1-', $cellphone), '-');不過通常應該是 0911-000-222 這種格式吧
作者:
alog (A肉哥)
2014-07-02 16:50:00應該要先分析好你的資料有哪幾種類型 再設計程式不然光幾個規則是無法適用全部$is_correct = preg_match('/^09\d{8}$/', $cellphone);
作者:
alog (A肉哥)
2014-07-02 17:23:00請以php manual 為準另外要移除數字以外的字元你可以這樣做 /[^\d]/
用十幾行寫出來就用十幾行 硬要用regex可能一會之後自己都看不懂當初為什麼這樣寫
作者:
alog (A肉哥)
2014-07-02 22:06:00IN/OUT要正確,至於用什麼RegExp or 純粹 String 處理都其次
對,in => out效果正確,code看得懂,就是最好的
作者: up9cloud (九天) 2014-07-03 01:32:00
只取代數字,建議regex。怕以後看無,加些註解就好@@
作者:
hwChang (聰明是天賦 善良是選擇)
2014-07-05 16:32:00加油加油,我最近剛好也在學習正規式。