如何将手机号码中间做掩码,四个常用文本操作技巧

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将手机号码中间做掩码,四个常用文本操作技巧相关的知识,希望对你有一定的参考价值。

参考技术A Excel中登记的手机号码,如果我们不想外传又不能把那个字段删掉,掩码就是最好的选择,最先开始看到有人用分裂的方法把中间四位分裂出来再做替换,其实有一个固定的函数replace。

第一行是文本形式的号码,第二行是普通格式的号码,公式=repalce(A1,4,4,"****")

例如我们想在A列输入11位数的手机号码,输入超出11位或不足11位就会报错,这样就不会因少输一位而登记错了

点击上方数据选项卡,选择数据验证(早期版本是数据有效性),在允许下拉框中选择文本长度,然后下方数据选择长度等于11

测试一下刚刚的设置有没有效果

有人会想到用len函数,没错就是这个,但是看看下面的列子

“今天星期 一”明明就是5个字 为什么回出来6呢,仔细一看“一”前面有个空格,用trim去空格??NO,上面这个例子用trim肯定是失败的 不信自己试试,这里用一个查找替换的方法,最简单的操作。

有时候会需要将文字顺序反着来,先复制一下(不复制在原文字上改也可以),在上面字体那里前面加个@符号 (如果是宋体就是@宋体),再把文字方向调成向下旋转

最后调成自动换行,如果是竖着显示的 把行高拉正常就行了(两行结果可以对比下,少了个@字体)

PHP常用的方法

PHP对银行卡做掩码处理

<?php

 /*------------------------------------------------------ */
// * 对银行卡号进行掩码处理
// * @param  string $bankCardNo 银行卡号
//*  @return string             掩码后的银行卡号
/*------------------------------------------------------ */
function formatBankCardNo($bankCardNo){
    //截取银行卡号前4位
    $prefix = substr($bankCardNo,0,4);
    //截取银行卡号后4位
    $suffix = substr($bankCardNo,-4,4);
    $maskBankCardNo = $prefix." **** **** **** ".$suffix;
    return $maskBankCardNo;
}



/*------------------------------------------------------ */
// * 时间转换计算
// * @param$show_time 需要转换的时间戳
// * @return string          转换后的时间
/*------------------------------------------------------ */
function timeTran($show_time) {  
    $dur = time() - $show_time;  
    if ($dur < 0) {  
        return ‘刚刚‘;  
    } 
    if ($dur < 60) {  
        return $dur . ‘秒前‘;  
    }
    if ($dur < 3600) {  
        return floor($dur / 60) . ‘分钟前‘;  
    } 
    if ($dur < 86400) {  
        return floor($dur / 3600) . ‘小时前‘;  
    } 
    if ($dur < 259200) {//3天内  
        return floor($dur / 86400) . ‘天前‘;  
    }
    return date("Y-m-d", $show_time); 
}


/*------------------------------------------------------ */
// * 生成指定长度的随机字符串(包含大写英文字母, 小写英文字母, 数字)
// * @param int $length 需要生成的字符串的长度
// * @return string 包含 大小写英文字母 和 数字 的随机字符串
/*------------------------------------------------------ */
function random_str($length,$isupper = false){
    //生成一个包含 大写英文字母, 小写英文字母, 数字 的数组
    $arr = $isupper ? array_merge(range(‘A‘,‘H‘),range(‘J‘,‘M‘),range(‘P‘,‘Z‘),range(0,9)) : array_merge(range(‘A‘, ‘Z‘),range(0, 9), range(‘a‘, ‘z‘));
    $str = ‘‘;
    $arr_len = count($arr);
    for ($i = 0; $i < $length; $i++){
        $rand = mt_rand(0, $arr_len-1);
        $str.=$arr[$rand];
    }
    return $str;
}


/*------------------------------------------------------ */
// *   实现中文字串截取无乱码的方法
// *  @param $string 待截取的字符串
// *  @param $start   开始截取位置
// *  @param $length 截取长度
// *  @return  $string  截取后的字符串
/*------------------------------------------------------ */
function getSubstr($string, $start, $length) {
      if(mb_strlen($string,‘utf-8‘)>$length){
          $str = mb_substr($string, $start, $length,‘utf-8‘);
          return $str.‘...‘;
      }else{
          return $string;
      }
}




/*------------------------------------------------------ */
// *   验证手机号码
// *  @param $phone 手机号码
// *  @return  bool   
/*------------------------------------------------------ */
function checkMobile($phone = ‘‘){
    $preg_phone=‘/^1d{10}$/ims‘;
    if(preg_match($preg_phone,$phone)){
        return true;
    }
    return false;

}


/*------------------------------------------------------ */
//-- 过滤掉emoji表情
/*------------------------------------------------------ */ 
function repEmoji($str){
    $str = preg_replace_callback( ‘/./u‘,function (array $match) {
                return strlen($match[0]) >= 4 ? ‘‘ : $match[0];
            },$str);
     return $str;
}



/*------------------------------------------------------ */
//-- 格式化价格
//-- @access  public
//-- @param   float   $price  价格
//-- @return  string
/*------------------------------------------------------ */
function priceFormat($price,$show_yuan = false,$type=0){    
    switch ($type){
        case 0:
            $price = number_format($price, 2, ‘.‘, ‘‘);
            break;
        case 1: // 保留不为 0 的尾数
            $price = preg_replace(‘/(.*)(\.)([0-9]*?)0+$/‘, ‘123‘, number_format($price, 2, ‘.‘, ‘‘));
            if (substr($price, -1) == ‘.‘) $price = substr($price, 0, -1);
            break;
        case 2: // 不四舍五入,保留1位
            $price = substr(number_format($price, 2, ‘.‘, ‘‘), 0, -1);
            break;
        case 3: // 直接取整
            $price = intval($price);
            break;
        case 4: // 四舍五入,保留 1 位
            $price = number_format($price, 1, ‘.‘, ‘‘);
            break;
        case 5: // 先四舍五入,不保留小数
            $price = round($price);
            break;
    }   

    if($show_yuan == false) return sprintf("%s", $price);
    else return sprintf("¥%s元", $price);
}


/*------------------------------------------------------ */
//-- * 格式化字节大小
//-- * @param number $size 字节数
//-- * @param string $delimiter 数字和单位分隔符
//-- * @return string
/*------------------------------------------------------ */
function formatBytes($size, $delimiter = ‘‘) {
$units = array(‘B‘, ‘KB‘, ‘MB‘, ‘GB‘, ‘TB‘, ‘PB‘);
for ($i = 0; $size >= 1024 && $i < 5; $i++) $size /= 1024;
return round($size, 2) . $delimiter . $units[$i];
}






/*------------------------------------------------------ */ //-- 将数组转换组下拉选项 //-- @param array $arr 所有的数组 //-- @param int $selected 选中项 //-- @param boolean $islimit 是否判断限制不可选 //-- @param int $level 返回等级 //-- @param int $kd_type 快递类型:0 快递100; 1 快递鸟 //-- @return string /*------------------------------------------------------ */ function arrToSel(&$rows = array(), $selected = 0, $islimit = false, $level = 0 ){ $select = ‘‘; $selected = explode(‘,‘,$selected); foreach ($rows AS $key=>$val){ if (is_array($val) == false){ $selected = (in_array($key,$selected)) ? "selected=‘selected‘" : ‘‘; $select .= ‘<option value="‘.$key.‘" ‘.$selected.‘>‘.$val.‘</option>‘; continue; } if ($level > 0 && $val[‘level‘] > $level) continue; $select .= ‘<option ‘; if ($islimit === true && $val[‘children‘] != $val[‘id‘] ){ $val[‘id‘] = ‘‘; $select .= ‘ style="background:#999;" ‘; } if (isset($val[‘status‘]) && $val[‘status‘] == 0){ $select .= ‘ style="color:#CCC;" ‘; }elseif (isset($val[‘is_sys‘]) && $val[‘is_sys‘] == 1){ $select .= ‘ style="color:#ff0000;" ‘; } $text = htmlspecialchars(strip_tags($val[‘name‘])); if (empty($val[‘dict_val‘]) == false){ $select .= ‘ value="‘.$val[‘ext_val‘].‘" ‘; $selval = $val[‘ext_val‘]; }else{ $select .= ‘ value="‘.$val[‘id‘].‘" ‘; $selval = $val[‘id‘]; } $select .= (in_array($selval,$selected)) ? "selected=‘selected‘" : ‘‘; $select .= ‘ data-text="‘.$text.‘" label="‘.$text.‘" >‘; if (isset($val[‘icon‘])) $select .= $val[‘icon‘]; $select .= $text; $select .= ‘</option>‘; } return $select; } /*------------------------------------------------------ */ //-- 返回一个带有缩进级别的数组 /*------------------------------------------------------ */ function returnRecArr(&$rows){ $newrows = array(); foreach ($rows as $key=>$row){ $newrows[$row[‘pid‘]][$row[‘id‘]] = $row; } return $newrows; } /*------------------------------------------------------ */ //-- 创建目录 /*------------------------------------------------------ */ function makeDir($folder){ $reval = false; if (!file_exists($folder)){ /* 如果目录不存在则尝试创建该目录 */ @umask(0); /* 将目录路径拆分成数组 */ preg_match_all(‘/([^/]*)/?/i‘, $folder, $atmp); /* 如果第一个字符为/则当作物理路径处理 */ $base = ($atmp[0][0] == ‘/‘) ? ‘/‘ : ‘‘; /* 遍历包含路径信息的数组 */ foreach ($atmp[1] as $val){ if (‘‘ != $val){ $base .= $val; if (‘..‘ == $val || ‘.‘ == $val){ /* 如果目录为.或者..则直接补/继续下一个循环 */ $base .= ‘/‘; continue; } }else{continue;} $base .= ‘/‘; if (!file_exists($base)){ /* 尝试创建目录,如果创建失败则继续循环 */ if (@mkdir(rtrim($base, ‘/‘), 0777)){ @chmod($base, 0777); $reval = true; } } } }else{ /* 路径已经存在。返回该路径是不是一个目录 */ $reval = is_dir($folder); } clearstatcache(); return $reval; } /** * 写入日志 * @param string|array $values * @param string $dir * @return bool|int */ function _log($values, $dir) { if (is_array($values)) $values = print_r($values, true); // 日志内容 $content = ‘[‘ . date(‘Y-m-d H:i:s‘) . ‘]‘ . PHP_EOL . $values . PHP_EOL . PHP_EOL; try { // 文件路径 $filePath = $dir . ‘/logs/‘; // 路径不存在则创建 !is_dir($filePath) && mkdir($filePath, 0755, true); // 写入文件 return file_put_contents($filePath . date(‘Ymd‘) . ‘.log‘, $content, FILE_APPEND); } catch (Exception $e) { return false; } } /*------------------------------------------------------ * 校验日期格式是否正确 * @param string $date 日期 * @param string $formats 需要检验的格式数组 * @return boolean ------------------------------------------------------ */ function checkDateIsValid($date, $formats = array("Y-m-d H:i:s","Y-m-d H:i")){ $unixTime = strtotime($date); if (!$unixTime) return false; //strtotime转换不对,日期格式显然不对 //校验日期的有效性,只要满足其中一个格式就OK if (!is_array($formats)) $formats = explode(‘,‘,$formats); foreach ($formats as $format) { if (date($format, $unixTime) == $date) return true; } return false; } /** * 获取当前页面完整URL地址 */ function getUrl($val=‘‘,$valb=‘‘,$var=array()){ $sys_protocal = isset($_SERVER[‘SERVER_PORT‘]) && $_SERVER[‘SERVER_PORT‘] == ‘443‘ ? ‘https://‘ : ‘http://‘; if($valb == ‘img‘){ if (strstr($val,‘http:‘)) return $val; return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).$val; }elseif($valb == ‘url‘){ $var[‘token‘] = $GLOBALS[‘userinfo‘][‘token‘]; if (strstr($val,‘http:‘)) return $val; return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).url($val,$var); }elseif($valb == ‘_url‘){ $var[‘token‘] = $GLOBALS[‘userinfo‘][‘token‘]; if (strstr($val,‘http:‘)) return $val; return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).url($val,$var); } $php_self = $_SERVER[‘PHP_SELF‘] ? $_SERVER[‘PHP_SELF‘] : $_SERVER[‘SCRIPT_NAME‘]; $path_info = isset($_SERVER[‘PATH_INFO‘]) ? $_SERVER[‘PATH_INFO‘] : ‘‘; $relate_url = isset($_SERVER[‘REQUEST_URI‘]) ? $_SERVER[‘REQUEST_URI‘] : $php_self.(isset($_SERVER[‘QUERY_STRING‘]) ? ‘?‘.$_SERVER[‘QUERY_STRING‘] : $path_info); return $sys_protocal.(isset($_SERVER[‘HTTP_HOST‘]) ? $_SERVER[‘HTTP_HOST‘] : ‘‘).$relate_url; } /** * 获取url 中的各个参数 类似于 pay_code=alipay&bank_code=ICBC-DEBIT * @param type $str * @return type */ function parseUrlParam($str){ $data = array(); $str = explode(‘?‘,$str); $str = end($str); $parameter = explode(‘&‘,$str); foreach($parameter as $val){ $tmp = explode(‘=‘,$val); $data[$tmp[0]] = $tmp[1]; } return $data; }

 

以上是关于如何将手机号码中间做掩码,四个常用文本操作技巧的主要内容,如果未能解决你的问题,请参考以下文章

科学计算基础软件包NumPy入门讲座:掩码数组

科学计算基础软件包NumPy入门讲座:掩码数组

PHP常用的方法

PHP常用的方法

星号掩码算法

WPF中如何设置PasswordBox控件显示原文?