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;
}))
(參數名和參數個數不確定),將其按 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));