我們在開發過程中,經常會碰到截取中文英文數字等的問題,大家知道中文所占的字符和英文數字是不同的;然后我們就會在項目的common里寫一些日常的函數包含時間計算轉換和中英文字符截取的函數;比如截取中英文的函數沒個幾行代碼恐怕拿不下來的吧,現在就告訴大家一個簡單的(自己本地運行過的),如有問題,請大家多多指教
$c = 'ddaabbccaa';$d = '地球需要我們每個人的愛護'; $frist1 = mb_substr( $c, 0, 1 ,"UTF-8"); // d$delete_last1 = mb_substr($d, -1,1,"UTF-8"); // 護echo $frist1.'+++'.$delete_last1.'<br/>'; // d+++護 $frist2 = mb_substr( $d, 0, 1 ,"UTF-8"); // 地$delete_last2 = mb_substr($d, -1,1,"UTF-8"); // 護echo $frist2.'+++'.$delete_last2.'<br/>'; // 地+++護 $e = '11aa22cc33';$f = 'aa地球需要我們每個人的愛護';$g = '地球需要我們每個人的愛護gg';$h = '地球需要我們每個人的愛護';$first3 = mb_substr( $e, 0, 1 ,"UTF-8"); // 1$last3 = mb_substr( $f, 0, 1 ,"UTF-8"); // a$delete_last3 = mb_substr($f, -1,1,"UTF-8"); // 護$delete_last4 = mb_substr($g, -1,1,"UTF-8"); // g$frist4 = mb_substr( $g, 0, 1 ,"UTF-8"); // 地$delete_last5 = mb_substr($h, -1,1,"UTF-8"); // 護 echo $first3.'+++'.$last3.'---'.$delete_last3.'***'.$delete_last4.'&&&'.$frist4.'<br/>'; // 1+++a---護***g&&&地echo $last3.'...'.$delete_last3.'<br/>'; // a...護echo $frist4.'...'.$delete_last5.'<br/>'; // 地...護// 這樣不管字符串里是中英文數字等都是可以的無需判斷,如: ”地...護“ 或者 “地...” 或者 “...護”
PS:過濾字符串中空格的方法
去除字符串首尾中英文空格的方法:
function mbTrim($str) { return mb_ereg_replace('(^( | )+|( | )+$)', '', $str); }
下面的正則驗證時過濾掉用戶輸入的連續空格,包括全角空格和半角空格
$user = mb_ereg_replace('^( | )+', '', $user);$user = mb_ereg_replace('( | )+$', '', $user);$age = mb_ereg_replace('^( | )+', '', $age);$age = mb_ereg_replace('( | )+$', '', $age); $method = mb_ereg_replace('^( | )+', '', $method);$method = mb_ereg_replace('( | )+$', '', $method);$address = mb_ereg_replace('^( | )+', '', $address);$address = mb_ereg_replace('( | )+$', '', $address);