我有以下两个变量:
$addressphone='5612719999';
$googlephone='561-271-9999';
PHP
中是否有一个优雅的解决方案可以验证这两个变量实际上是否相等。我不想使用str_replace
,因为条件可以改变,我必须考虑到一切。
我已尝试casting
和intval
,但似乎都没有效果
更新
$addressphone='5612719999';
$googlephone='561-271-9999';
preg_replace("/\D/","",$googlephone);
var_dump($googlephone);
返回string(12) "561-271-9999"
答案 0 :(得分:2)
我有点重申评论所说的内容,但你应该从每个字符串中删除非数字,然后比较它们的整数值。
// original, non-integer-infested strings
$addressphone= "5612719999";
$googlephone= "561-271-9999";
// remove non-digits
$addressphone = preg_replace("/\D/","",$addressphone);
$googlephone = preg_replace("/\D/","",$googlephone);
然后您可以检查以下条件是否相等:
// compare integer values of digit-only strings
intval($addressphone) == intval($googlephone)
// should return true
答案 1 :(得分:0)
我会使用preg_replace()
删除所有非数字字符。这样,您只需使用数字字符串,您可以按照自己喜欢的方式进行比较。
<?php
$testString = "123-456-7890";
echo preg_replace("/\D/", "", $testString); //echos 1234567890
?>
答案 2 :(得分:0)
试试这个:
print_r($addressphone === implode("", explode("-",$googlephone)))
答案 3 :(得分:0)
$pieces = explode("-", $googlephone);
$newstring="";
foeach ($piece in $pieces)
{
$newstring +=piece;
}
现在将您的字符串与$ newstring进行比较。
答案 4 :(得分:0)
删除不是数字的所有内容:
<?php
$addressphone ='5612719999';
$googlephone ='561-271-9999';
$number_wang = function($numberish) {
return preg_replace('/[^0-9]/', '', $numberish);
};
assert($number_wang($googlephone) == $addressphone);