面试编程题-字符串操作(获取url的参数值)

字符串编程api基础:

//这里只是列举了常用的字符串函数,具体使用方法,请参考网址。
concat()        将两个或多个字符的文本组合起来,返回一个新的字符串。
indexOf()       返回字符串中一个子串第一处出现的索引。如果没有匹配项,返回 -1 。
charAt()        返回指定位置的字符。返回字符,下标从0开始
lastIndexOf()   返回字符串中一个子串最后一处出现的索引,如果没有匹配项,返回 -1 。
match()         检查一个字符串是否匹配一个正则表达式。
substr()        返回从string的startPos位置,长度为length的字符串
substring()     返回字符串的一个子串。传入参数是起始位置和结束位置。
slice()         提取字符串的一部分,并返回一个新字符串。
replace()       用来查找匹配一个正则表达式的字符串,然后使用新字符串代替匹配的字符串。
search()        执行一个正则表达式匹配查找。如果查找成功,返回字符串中匹配的索引值。否则返回 -1 。
split()         通过将字符串划分成子串,将一个字符串做成一个字符串数组。
length          返回字符串的长度,所谓字符串的长度是指其包含的字符的个数。
toLowerCase()   将整个字符串转成小写字母。
toUpperCase()   将整个字符串转成大写字母。

数组api

方法	描述
concat()	连接两个或更多的数组,并返回结果。
join()	把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。
pop()	删除并返回数组的最后一个元素
push()	向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()	颠倒数组中元素的顺序。
shift()	删除并返回数组的第一个元素
slice()	从某个已有的数组返回选定的元素
sort()	对数组的元素进行排序
splice()	删除元素,并向数组添加新元素。
toSource()	返回该对象的源代码。
toString()	把数组转换为字符串,并返回结果。
toLocaleString()	把数组转换为本地数组,并返回结果。
unshift()	向数组的开头添加一个或更多元素,并返回新的长度。
valueOf()	返回数组对象的原始值

对象的使用

person={};
person['firstname']='john';
person['lastname']='Doe';

console.log(person['firstname'])//join

 

1.获取url的参数(测试地址:http://www.runoob.com/jquery/misc-trim.html?channelid=12333&name=xiaoming&age=23

function findFromUrl(){
	var nowurl=window.location.href;
	var args=nowurl.split('?');
	var obj={};
    if(args[0]==nowurl){//当没有参数
    	return null
    }else{
    	var searchStr=args[1].split('&');
    	for(var i=0;i<searchStr.length;i++){
    		arr=searchStr[i].split('=')
            obj[arr[0]]=arr[1];//obj给俩者制造一种映射关系
    	}
    }
    return obj;
}

undefined
var href=findFromUrl()
console.log(href['name'])
// xiaoming

2.判断一个字符串中出现次数最多的字符,统计这个次数

function whoIsCountMax(str) {
    var obj = {};
    for (var i = 0; i < str.length; i++) {
        if (!obj[str.charAt(i)]) {
            obj[str.charAt(i)] = 1;
        } else {
            obj[str.charAt(i)]++;
        }
    }
    //比较
    var max = 0;
    var nIndex = '';
    for (var item in obj) {
        if (obj[item] > max) {
            max = obj[item];
            nIndex = item;
        }
    }
    return max//返回最多出现次数、nIndex为此时出现次数最多的字母
}
var str='asdfssaaasasasasaa';
console.log(whoIsCountMax(str)); 
// 9

3.去除字符串空格

方法一:使用replace正则匹配的方法
    去除所有空格: 
    str = str.replace(/\s*/g,"");      
    
    去除两头空格: 
    str = str.replace(/^\s*|\s*$/g,"");
    
    去除左空格: 
    str = str.replace( /^\s*/, "");
    
    去除右空格: 
    str = str.replace(/(\s*$)/g, "");
    
    str为要去除空格的字符串,实例如下:
    var str = " 23 23 ";
    var str2 = str.replace(/\s*/g,"");
    console.log(str2); // 2323

方法二:使用str.trim()方法
    str.trim() //局限性:无法去除中间的空格,实例如下:
    var str = "   xiao  ming   ";
    var str2 = str.trim();
    console.log(str2);   //xiao  ming 
    同理:
    str.trimLeft(),str.trimRight() //分别用于去除字符串左右空格。

方法三:使用jquery,$.trim(str)方法
    $.trim(str) 局限性:无法去除中间的空格,实例如下:
    var str = "   xiao  ming   ";
    var str2 = $.trim(str)
    console.log(str2);   //  xiao  ming

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值