JS——笔试点滴记录2——字符串相关

来源:互联网 发布:sqlserver true false 编辑:程序博客网 时间:2024/05/25 01:36

一、相关题目

1、字符串替换

题目:

将"sdfa sdksdk xsdkakdg"中"sdk"替换成"-replace-"。

分析:

传统方法:可使用split函数将字符串拆分成几个子串,再在适当位置加入需要替换的字符串,重新组合得到结果。

使用js特有函数实现:通过正则表达式的test等方法,与js中String对象的replace方法快速实现。

传统方法编码:

var str="sdfa sdksdk xsdkakdg";var strArray=str.split("sdk");for(var i=0;i<strArray.length;i++){<span style="white-space:pre"></span>alert(strArray[i]);if(i!=(strArray.length-1))strArray[i]=strArray[i]+"-replace-";}var newStr=strArray.join("");//替换后的结果alert(newStr);
思路:上面编码使用将被替换的子串分隔字符串,并在子串数组的每个元素(除末尾元素外)基础上加上将替换的字符串,重新组合,巧妙得到结果。

使用js特有函数实现:

var str="sdfa sdksdk xsdkakdg";//将处理的字符串var exp=new RegExp("sdk");//创建正则表达式while(exp.test(str)){str=str.replace("sdk","-replace-");}alert(str);//显示结果
思路:不断通过正则表达式的test判断字符串是否包含正则表达式中的子串,从而多次逐一替换。

小结:

——>split与join是一对相反的操作,join将数组连接成字符串,默认以顿号连接。

——>正则表达式的基础创建方法,及test方法与String对象的replace方法的使用。注意replace方法返回替换后的新字符串,一次只替换一处!



2、字符串拆分

题目:

编写函数parseUrl,使其以对象形式返回解析后的url。如www.baidu.com?uid=123&uname=xiaoming。

分析:

主要涉及字符串的拆分与JSON 对象形式。

当时的编码:

function parseUrl(urlVal){var url=urlVal.split("?")[0];var cookies=urlVal.split("?")[1].split("&");var keys=new Array();var values=new Array();for(var i=0;i<cookies.length;i++){keys[i]=cookies[i].split("=")[0];values[i]=cookies[i].split("=")[1];}var urlObj={"url":url,"keys":keys,"values":values};return urlObj;}var testObj=parseUrl("www.baidu.com?key1=123&key2=456");alert(testObj.url+testObj.keys[1]+":"+testObj.values[1]);//简单的测试

收获:对于返回结果为数组的表达式,可直接通过“[ ]”取回某个元素,这与DOM 通过getElementByTagName("p")[1]获取某个元素用法相同,但在其它编程语言中,一般不会直接这么用(没测试过)。





0 0