常見字符串操作函數封裝

1、去除空格操作
function trimStr(str, type) {
    switch (type) {
        case 1:
            return str.replace(/^\s+/g, "");//去除所有空格
            break;
        case 2:
            return str.replace(/(^\s*)|(\s*$)/g, "");//去除前後空格
            break;
        case 3:
            return str.replace(/^\s*/g, "");//去除前空格
            break;
        case 4:
            return str.replace(/\s*/g, "");//去除後空格
            break;
        default:
            return str;
    }
}
2、字母大小寫切換
function transferCase(str) {
    var itemText = "";
    str.split("").forEach(function (item, index) {
        if(/^[a-z]+/.test(item)){//如果是小寫,則轉換成大寫
            itemText += item.toUpperCase();
        }else if(/^[A-Z]+/.test(item)){//如果是大寫,則轉換成小寫
            itemText += item.toLowerCase();
        }else {//以上兩者都不滿足,則返回原字符
            itemText += item;
        }
    })
    return itemText;
}
//大小寫切換
function changeCase(str, type) {
    switch (type) {
        case 1:
            return str.replace(/^(\w)(\w+)/, function (v, v1, v2) {
                /*
                * 函數的三個參數:
                *   v表示當前要測試的字符串,
                *   v1表示首字母,
                *   v2表示剩餘字母
                * */
                console.log(v,v1,v2);
                return v1.toUpperCase() + v2.toLowerCase();
            });
            break;
        case 2:
            return str.replace(/^(\w)(\w+)/,function (v, v1, v2) {
                return v1.toLowerCase() + v2.toUpperCase();
            });
            break;
        case 3:
            return str.toUpperCase();
            break;
        case 4:
            return str.toLowerCase();
            break;
        case 5:
            return transferCase(str);
        default:
            return str;
    }
}
//每個單詞的首字母大寫
function upperFirst(str){
	var arr = str.split(" ");
	var str1 = "";
	for(var i = 0; i < arr.length; i++){
		str += arr[i].substring(0,1).toUpperCase + arr[i].substring(1) + " ";
	}
	return str1;
}
3、字符串的循環複製
function copy(str,count){
    var strText = ""
    for( var i = 0; i < count; i ++){
        strText += str;
    }
    return strText;
}
4、字符串的替換
function changeStr(str,cStr,insteadStr){
    var reg = new RegExp(cStr, "g");//每匹配一次就會創建一個reg對象,然後將該對象替換,直至無法找見爲止
    return str.replace(reg, insteadStr);
}
5、字符串的檢測
function checkStr(str, type) {
    switch (type) {
        case 'email':
            return /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/.test(str);
            break;
        case 'phone':
            return /^1[3|4|5|7|8][0-9]{9}$/.test(str);
            break;
        case 'tel':
            return /^(0\d{2,3}-\d{7,8})(-\d{1,4})?$/.test(str);
            break;
        case 'number':
            return /^[0-9]$/.test(str);
            break;
        case 'english':
            return /^[a-zA-Z]+$/.test(str);
            break;
        case 'chinese':
            return /^[\u4E00-\u9FA5]+$/.test(str);
            break;
        case 'lower':
            return /^[a-z]+$/.test(str);
            break;
        case 'upper':
            return /^[A-Z]+$/.test(str);
            break;
        default :
            return true;
    }
}
6、檢測密碼強度
function checkPwd(str) {
    var level = 0;
    if (str.length < 6) {
        return level;
    }
    if (/[0-9]/.test(str)) {
        level++;
    }
    if (/[a-z]/.test(str)) {
        level++;
    }
    if (/[A-Z]/.test(str)) {
        level++;
    }
    if (/[\.|-|_]/.test(str)) {
        level++;
    }
    return level;
}
7、檢測隨機碼
function randomStr(count){
    //count表示將數字轉換爲幾進制
    return Math.random().toString(count).substring(2)
}
8、查找指定字符串出現的長度
function findStr(str, strSplit) {
    return str.split(strSplit).length -1 ;
}
9、查找一個字符在字符串中出現的次數,並且返回其出現的位置
/*
* @param:str => 被查找的字符串
*        str1 => 要查找的字符
*        start => 開始查找的字符串的索引位置  
*/
function findCount(str, str1, start){
	var count = 0;//字符串出現的次數
	while(str.indexOf(str1, start) > -1){
		count ++;
		start = str.indexOf(str1,i) + str1.length;
	}
	return count;
}
10、字符串的反轉
function reverseStr(str){
	return str.split("").reverse().join("");
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章