字符串一些常見的練習操作

1.尋找所有子串的位置

function substrPosition (str, substr) {
	/*
		find all the substr position
	*/
	var position_arr = [];
	var index = str.indexOf(substr);
	while(index != -1) {
		position_arr.push(index);
		index = str.indexOf(substr, index+1);
	}
	return position_arr;
}

2. 一段文本,以空格分割,各個單詞首字母大寫

function everyUpperCase(str){
	
	var str_arr = str.split("");
	str_arr[0] = str_arr[0].toUpperCase();
	for(var i=0; i<str_arr.length-1; ++i) {
		if(str_arr[i] == " ") {
			str_arr[i+1] = str_arr[i+1].toUpperCase();
		}
	}
	return str_arr.join("");
}

var str = "spend some time to study vue ";
console.log(everyUpperCase(str));

3. 有字符串 var str= 'abc345efgabcab',請寫出 3 條 JS 語句分別實現如下 3 個功能:
1)去掉字符串中的a、b、c 字符,形成結果:'345efg'
2)將字符串中的數字用中括號括起來,形成結果:'abc[3][4][5]efgabcab'

3)將字符串中的每個數字的值分別乘以 2,形成結果:'abc6810efgabcab'

var str= 'abc345efgabcab';
console.log(str.replace(/[abc]/g, ""));
console.log(str.replace(/[0-9]/g, "[$&]"));
console.log(str.replace(/[0-9]/g, function (value) {
	return value *2;
}))


4.有這樣一個 URL:http://vip.qq.com/a.php?a=1&b=2&c=&d=xxx&e,請寫一段 JS 程序提取 URL 中的各個參數
(參數名和參數個數不確定),將其按 key-value 形式返回到一個 json 結構中,

如{a:'1',b:'2',c:'',d:'xxx',e:undefined}。

用捕獲組來解決,其實很方便

function retrieveParameters(url) {
	var result = {};
	var pattern = /[?|&](\w+)(=)?(\w*)/g;
	var pattern_result = pattern.exec(url);
	while(pattern_result){
		if(pattern_result[2]) {
			result[pattern_result[1]] = pattern_result[3];
		}else {
			result[pattern_result[1]] = undefined;
		}

		pattern_result = pattern.exec(url);
	}

	return result;
}

var str1 = "http://vip.qq.com/a.php?a=1&b=2&c=&d=xxx&e";
var str2 = "http://baidu.com?abc=10&def=20";
console.log(retrieveParameters(str1));
console.log(retrieveParameters(str2));




發佈了88 篇原創文章 · 獲贊 37 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章