將某個字符串中全部的電話號碼的中間四位改成 ****
php
一、使用正則匹配的方式把字符串中全部的電話號碼取出
二、把取出的手機號碼作字符的替換修改spa
代碼以下:code
public function vaildTel($s){ $n = preg_match_all("/15[0-9]\d{8}|17[0-9]\d{8}|14[0-9]\d{8}|13[0-9]\d{8}|18[0-9]\d{8}/",$s,$arr); foreach ($arr[0] as $tel) { $new = substr($tel,0,3).'****'.substr($tel,7,strlen($tel)); $s = str_replace($tel,$new,$s); } return $s; }
function vaildTel(s){ var obj = s.match(/((((13[0-9])|(15[^4])|(18[0,1,2,3,5-9])|(17[0-8])|(147))\d{8})|((\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}))?/g) var tel ; var trueTel; for (var item in obj){ tel = obj[item]; if(tel && tel.length == 11){ trueTel = tel.substr(0, 3) + '****' + tel.substr(7) s=s.replace(tel,trueTel); } } return s; }
PHP實現的時候,若是字符串的長度大於11位,那麼僅僅會對前11位數字進行處理rem