잘못된 전화 번호를 감지하고 원래의 전화 번호로 바꿀 정규식을 작성하려고합니다. 나는 전화 번호가 있고 텍스트 (html 태그 포함)가있는 텍스트 필드는 잘못된 숫자 (어떤 이유로 든 숫자 사이에 여러 문자를 넣는 것과 같은 사이트 사용자)입니다. 여기에 내가 모든 대부분의 경우에 잘 작동하는 사용하지만,하고 무엇인가 :PHP에서 잘못된 전화 번호를 탐지하는 정규 표현식
$phone = '0888123123';
$text = 'Some html text with variants of the phone number in wrong format -
0~8~8~8~1~2~3~1~2~3
0.8.8.8.1.2.3.1.2.3
0 8 8 8 1 2 3 1 2 3
0888-123-123
The last format does not work!';
preg_match_all('/('.implode('[\D]+', str_split($phone)).')/i', strip_tags($text), $matches);
if (count($matches) > 0) {
foreach($matches as $value) {
$text = str_replace($value, $phone, $text);
}
}
내가 숫자 사이의 모든 숫자가 아닌 문자를 찾으려고하지만,이 숫자가 아닌 문자 모든 숫자 사이에있는 경우에만 작동 즉 0.8.8.8.1.2.3.1.2.3이지만 0888-123-123과 일치하지 않습니다. 이 정규 표현식에 나머지 케이스를 잡기위한 추가 사항이 있습니까?
는 쉽게 더 INT 특정 자릿수 ... 또는 사용 전화의 캐리어 조회 API (예는 한입니다 전화를 감지하지 않으려면 http://www.telapi.com/docs/api/rest/ 이동 통신사 서비스/이동 통신사 조회 /)를 사용하여 유효한 이동 통신사가 없거나 –
전화 번호를 확인할 수 있습니다. 텍스트 필드 안에는 사용자가 HTML 텍스트 안에 넣기 때문에 감지 할 수 없습니다. –
아니, 그럴 수 없다 .. 아니면 전화 번호 이외의 문자 만 포함해서 숫자를 추출하고 날씨가 유효한지 확인하는 것보다 텍스트에 숫자가 있어야합니다. –