To block the middle segment of the phone number, first know the regular expression of the phone number.
First look at the regular expression of the PHP match phone number.
Regular expressions that match a fixed phone are:
/(0[0-9]{2,3}[\-]? [2-9] [0-9] {6,7} [\-]? [0-9]?) /I
The regular expression that matches the phone number is:
/(1[358]{1}[0-9]{9})/I
To match all the phone numbers with an expression, you just need to merge them together, as follows:
/(0[0-9]{2,3}[\-]? [2-9] [0-9] {6,7} [\-]? [0-9]?) | (1[358]{1}[0-9]{9})/I
For example:
$phone = ' 010-88888888-8 ';
Preg_match ('/(0[0-9]{2,3}[\-]?[ 2-9][0-9]{6,7}[\-]? [0-9]?) | (1[358]{1}[0-9]{9})/I ', $phone, $match);
Print_r ($match);
Watch the regular expression of the phone number, and then see how to block the middle segment of the phone number with an asterisk (*).
1. Block the middle segment of mobile phone number:
Preg_replace ('/(1[358]{1}[0-9]) [0-9]{4} ([0-9]{4})/I ', ' $1****$2 ', $phone);
2, shielding fixed telephone middle segment:
Preg_replace ('/(0[0-9]{2,3}[\-]?[ 2-9]) [0-9]{3,4} ([0-9]{3}[\-]?[ 0-9]?) /I ', ' $1****$2 ', $phone);
For example:
$phone = ' 010-88888888-8 ';
$phone 1 = ' 13888888888 ';
$phone = Preg_replace ('/(0[0-9]{2,3}[\-]?[ 2-9]) [0-9]{3,4} ([0-9]{3}[\-]?[ 0-9]?) /I ', ' $1****$2 ', $phone);
$phone 1 = preg_replace ('/(1[358]{1}[0-9]) [0-9]{4} ([0-9]{4})/I ', ' $1****$2 ', $phone 1);
echo $phone, ' <br> ';
echo $phone 1, ' <br> ';
Result output:
138****8888
010-8****888