/** * 去除字符串左右兩端的空格 */ function trim(str) { return (str + '').replace(/(\s+)$/g, '').replace(/^\s+/g, ''); } /** * 獲取字符串長度(兼容IE:若是是IE,而且有換行符(\n)則替換爲‘_’而後再計算長度) */ function strlen(str) { //獲取字符串長度 return (BROWSER.ie && str.indexOf('\n') != -1) ? str.replace(/\r?\n/g, '_').length : str.length; } /** * 獲取字符符串長度 */ function mb_strlen(str) { var len = 0; // 聲明長度 for (var i = 0; i < str.length; i++) { //遍歷str參數 len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1;//charCodeAt(i)>255是用來判斷很是規字符的,若是是在 UTF-8編碼下,一個漢字佔3個字節,一箇中文字符的佔位是2個字節,英文字符是1個字節 } return len; //返回字符串長度 } /** * 將超過指定的最大長度(maxlen)之外的文字顯示爲dot(‘...’) */ function mb_cutstr(str, maxlen, dot) { var len = 0; //聲明長度 var ret = ''; //聲明返回值 var dot = !dot ? '...' : dot; //判斷dot是否爲空,若是爲空dot默認爲‘...’ maxlen = maxlen - dot.length; //獲取最大長度和dot之間的長度值 for (var i = 0; i < str.length; i++) { //遍歷目標字符str len += str.charCodeAt(i) < 0 || str.charCodeAt(i) > 255 ? (charset == 'utf-8' ? 3 : 2) : 1; //若是是在 UTF-8編碼下,一個漢字佔3個字節,一箇中文字符的佔位是2個字節,英文字符是1個字節 if (len > maxlen) { //判斷len是否大於最大長度 ret += dot; //若是大於最大長度則加上dot後跳出循環 break; //跳出循環 } ret += str.substr(i, 1); //每次獲取一個字並拼接在ret後面 } return ret; //返回結果 } /** * 將str中匹配到search的值都替換爲replace * 若是search、replace都爲數組,則可理解爲多替換 * 若是 search:['1','2']、replace:['a','b']這樣的值,那麼會將1替換成a,將2替換成b,若是search的長度大於replace,則默認替換爲replace的第一個值 * search:正則; replace:須要替換的值(能夠爲數組); str:查找源; regswitch:正則的修飾符(可取值:‘i’、‘g’、‘ig’等) */ function preg_replace(search, replace, str, regswitch) { var regswitch = !regswitch ? 'ig' : regswitch; //設置修飾符,若是regswitch爲空則默認值:'ig' var len = search.length; //獲取search長度 for (var i = 0; i < len; i++) { //遍歷len re = new RegExp(search[i], regswitch); //聲明正則,並設置修飾符 //將str中匹配到re的值替換爲replace,若是replace爲string類型,則直接替換,若是爲數組,則替換爲當前replace中對應的值 str = str.replace(re, typeof replace == 'string' ? replace : (replace[i] ? replace[i] : replace[0])); } return str;//返回結果 }