javascript 数组 转换 字符串-Javascript 对字符串和链表的操作

2023-10-24 0 9,928 百度已收录

摘要:本文主要总结了JS中字符串和数组操作函数和使用方法,并提供了几个实现字符串链表操作的函数,大家可以直接使用。

随便搜索一下也许就能找到一些关于 JS 的简单知识,所以本文首先重点介绍 JavaScript 字段中链表元素的搜索和替换(指搜索和替换每个元素的内容),然后介绍使用JS。 字符串和字段的基本操作。

1. 搜索并替换JavaScript(字符串)链表中每个元素的内容。

JavaScript提供了在字符串中查找子字符串的函数indexOf()、lastIndexOf()和search(),还提供了字符串替换函数replace(),但链表对象Array中没有实现该函数。

为了让Array也支持上述方法,我们可以改变Array对象的原型,减少相应的函数。 让这个函数与String对象的函数具有相同的名称和相似的句型,以方便我们的使用。 下面给出一些简单的介绍,读者也可以根据自己的需要定义其他的方法。

//判断一个字符串是否包含另一个字符串,substr:子字符串,start:起始位置

Array.prototype.indexOf=函数(substr,start){

varta,rt,d='';

if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}

varstr=d+ta.join(d)+d,t=str.indexOf(d+substr+d);

if(t==-1)return-1;rt+=str.slice(0,t).replace(/[^]/g,'').length;

返回;

//该方法从右向左搜索,返回strObj中substr最后出现的位置。 如果没有找到,则返回-1。

Array.prototype.lastIndexOf=函数(substr,开始){

varta,rt,d='';

if(start!=null){ta=this.slice(start);rt=start;}else{ta=this;rt=0;}

ta=ta.reverse();varstr=d+ta.join(d)+d,t=str.indexOf(d+substr+d);

if(t==-1)return-1;rt+=str.slice(t).replace(/[^]/g,'').length-2;

返回;

//该方法将字符串中的reg替换为rpby,比较常用。

Array.prototype.replace=函数(reg,rpby){

varta=this.slice(0),d='';

varstr=ta.join(d);str=str.replace(reg,rpby);

returnstr.split(d);

//查找字符串中指定的子串

Array.prototype.search=函数(reg){

varta=this.slice(0),d='',str=d+ta.join(d)+d,regstr=reg.toString();

reg=newRegExp(regstr.replace(//((.|n)+)/.*/g,'\0$1\0'),regstr.slice(regstr.lastIndexOf('/') +1));

t=str.search(reg);if(t==-1)return-1;returnstr.slice(0,t).replace(/[^]/g,'').length;

以上四种方法都实现了链表中每个元素的查找或者替换,不用再做循环浪费时间。

2.js对字符串的操作。

1. 字符串的创建

创建字符串的方法有多种。 最简单的是使用冒号包含一组字符,并且可以将其形式参数赋予字符串变量。

varmyStr="你好,字符串!";

我们在脚本中创建字符串,但本质上,它们并不是真正的字符串对象,而是字符串类型的值。 要创建字符串对象,请使用以下句子: varstrObj=newString("Hello,String!");

如果使用typeof运算符查看javascript 数组 转换 字符串,会发现myStr类型是string,strObj类型是object。

如果您想知道字符串的宽度,请使用其长度属性:string.length。

如何获取字符串指定位置的字符:string.charAt(index);

2. 字符串连接

很简单,只需使用“+”将两个字符串“相乘”即可:

varlongString="Onepiece"+"plusonemorepiece.";

要将多个字符串累积为一个字符串,还可以使用“+=”运算符:

varresult="";

结果+=“我的名字安德斯”

结果+=“andmyageis25”;

要向字符串添加换行符,请使用通配符“n”:

varconfirmString="您没有输入最后的响应"+

“问题。nn是否仍要提交?”;

varconfirmValue=确认(confirmString);

然而,这些方法只能用于警告和确认对话框等情况。 如果此文本以 HTML 内容呈现,则该文本无效。 在这种情况下,请使用“

“将其替换为:

varhtmlString =“第一行字符串。

第二行字符串。";

文档.write(htmlString);

String对象还提供了concat()方法,它执行与“+”相同的功能:

string.concat(值1,值2,...)

然而,concat()方法似乎并不像“+”那么直观和简单。

3. 访问字符串的子串

使用 substring() 或 slice() 方法(NN4+、IE4+),它们的具体用法解释如下。

substring() 的原型是: string.substring(from,to)

第一个参数from指定子串在原字符串中的起始位置(基于0索引); 第二个参数to是可选的,它指定子字符串在原始字符串中的结束位置(从0开始)。 index),通常应该大于 from。 如果省略,子字符串仍将到达原始字符串的末尾。

如果参数 from 意外大于参数 to 会发生什么情况? JavaScript 会手动调整子字符串的起始和结束位置,即 substring() 总是从两个参数中较小的一个开始,以较大的一个结束。 但请注意,它包含起始位置的字符,但不包含结束位置的字符。

varfullString="Everydoghashisday.";

varsection=fullString.substring(0,4);//section是“Ever”。

slice() 的原型是: string.slice(start,end)

参数start表示子串的起始位置。 如果是正数,可以理解为从最后一个到最后一个的起始位置。 例如-3表示从倒数第三个开始。 参数end表示结束位置。 和start一样,它也可以是正数也表示倒数第二个数的结束。 slice()的参数可以是正数,因此比substring()更灵活,但宽容度不够。 如果start大于end,则返回空字符串(示例略)。

另一种方式是substr(),其原型为:string.substr(start,length)

从原型中可以看出其参数的含义。 start表示起始位置,length表示子串的粗细。 JavaScript 标准不鼓励使用这种技术。

4.字符串大小写转换

使用 toLowerCase() 和 toUpperCase() 方法:

varcity="上海";

city=city.toLowerCase();//现在城市是“上海”。

5.判断两个字符串是否相等

首先将所有用户输入的值转换为小写(或大写),然后进行比较:

varname=document.form1.txtUserName.value.toLowerCase();

if(姓名==“姓氏”)

// 语句移至此处。

JavaScript 有两个相等运算符。 一种是完全向后兼容,标准的“==”。 如果两个操作数类型不一致,它会在某些时候手动对操作数进行类型转换。 考虑以下形式参数语句:

varstrA="我爱你!";

varstrB=newString("我爱你!");

这两个变量包含相同的字符序列,但具有不同的数据类型。 后者是字符串,前者是对象。 当使用“==”运算符时,JavaScript 将尝试各种评估来检查两个变量是否彼此匹配。 在某些情况下是平等的。 因此以下表达式的计算结果为 true:strA==strB。

第二个运算符是“严格”“= =”,它的计算不太宽容javascript 数组 转换 字符串,并且不执行类型转换。 因此,表达式 strA===strB 的计算结果为 false,即使这两个变量具有相同的值。

有时代码的逻辑要求你判断两个值是否不相等。 这里有两个选项:“!=”和严格的“!==”。 他们的关系类似于“==”和“===”。

讨论:

“==”和“!=”在求值时会尽力找到匹配的值,但您可能仍然希望在比较之前执行显式类型转换以“帮助”它们完成工作。 例如,如果你想判断用户输入的值(字符串)是否等于数字,你可以让“==”为你完成类型转换:

if(document.form1.txtAge.value==someNumericVar){...}

也可以提前转换:

if(parseInt(document.form1.txtAge.value)==someNumericVar){...}

如果你比较习惯强类型编程语言(比如C#、Java等),可以在这里延续你的习惯(类型转换),这样也会提高程序的可读性。

您需要注意的一件事是计算机的区域设置。 如果使用“”来比较字符串,那么 JavaScript 会将它们作为 Unicode 进行比较,但事实上,人们在浏览网页时不会将文本读取为 Unicode 🙂 例如,在爱尔兰语中,根据传统的排序,“ch”将被排序为“c”和“d”之间的一个字符。 localeCompare() 提供了一个方法来帮助您使用默认语言环境的字符排序规则。

varstrings;//要排序的字符串字段,假设已经初始化

strings.sort(function(a,b){returna.localeCompare(b)});//调用sort()进行排序

6. 搜索字符串

使用字符串的indexOf()方法:

strObj.indexOf(subString[,startIndex])

strObj为要确定的字符串,subString为strObj中要查找的子字符串,startIndex为可选,表示查找的起始位置(从0开始索引),如果startIndex省略,则从strObj开头查找,如果startIndex大于0,则从0开始。如果startIndex小于最大索引,则从最大索引开始。

indexOf() 返回 strObj 中 subString 的起始位置。 如果没有找到,则返回-1。 在脚本中,您可以像这样使用它:

if(largeString.indexOf(shortString)!=-1)

//如果包含,则进行相应处理;

事实上,一个字符串会多次包含另一个字符串。 这时,第二个参数startIndex似乎就派上用场了。 以下函数演示了如何查找一个字符串包含另一个字符串的次数:

函数countInstances(mainStr,subStr)

变量计数=0;

变量偏移=0;

offset=mainStr.indexOf(subStr,offset);

if(偏移量!=-1)

计数++;

offset+=subStr.length;

} while(偏移量!=-1)

返回计数;

String对象有对应indexOf()、lastIndexOf()的方法:

strObj.lastIndexOf(子字符串[,startindex])

strObj为要确定的字符串,subString为strObj中要查找的子字符串,startIndex为可选,表示查找的起始位置(从0开始索引),如果startIndex省略,则从strObj末尾开始查找,如果startIndex大于0,则从0开始。如果startIndex小于最大索引,则从最大索引开始。 该方法从右向左搜索并返回 subString 最后出现在 strObj 中的位置。 如果没有找到,则返回-1。

7. Unicode值和字符串中的字符之间的转换

问题:

获取字符的 Unicode 编码值,反之亦然。

解决方案:

要获取字符的Unicode编码,可以使用string.charCodeAt(index)方法,其定义为:

strObj.charCodeAt(索引)

index 是指定字符在 strObj 对象中的位置(从 0 开始的索引),返回值是 0 到 65535 之间的 16 位整数。如:

varstrObj="ABCDEFG";

varcode=strObj.charCodeAt(2);//字符'C'的Unicode值是67

如果index指定的索引处没有字符,则返回值为NaN。

要将 Unicode 编码转换为字符,请使用 String.fromCharCode() 方法。 注意,它是 String 对象的“静态方法”,这意味着使用前不需要创建字符串实例:

String.fromCharCode(c1,c2,...)

它接受0个或多个整数,并返回一个包含每个参数指定的字符的字符串,例如:

varstr=String.fromCharCode(72,101,108,108,111);//str=="你好"

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 javascript javascript 数组 转换 字符串-Javascript 对字符串和链表的操作 https://www.wkzy.net/game/199133.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务