javascript的字符串

字符串是不管在java前端还是后台中都是用的最多最多的一个数据类型,所有前后台交互的数据都是字符串String类型。
那么如何来定义String字符串呢,注意,用双引号或者单引号引起来的一切的数据都是字符串。比如:
javascript的字符串
所有的这一些,只要用引号引起来了,都是字符串。
在这里,所有的字符串都是用双引号引起来的,那么什么时候使用到单引号呢?那就是拼接元素的时候。举个例子:
比如,我想在一个id = box的div中,拼接一段下拉框元素,最后的效果如下:
javascript的字符串
这个该怎么拼接呢?那么我们用JS来实现:
javascript的字符串
在这里,我们的双引号中又带有双引号,就会造成代码的混乱。这样最后的结果就是显示不出来,那么如何更改这段代码呢?这时候就要用到我们的单引号了:
javascript的字符串
最后更改为图上代码,显示就没问题了。
注意,这里一部分双引号我改成了单引号,但是最后面的2个option里的value,我用\来转义了双引号。这个\的作用就是告诉程序,\后面的那一个字符,仅仅作为一个输出字符来展现,而不具有任何特殊的意义。单引号和\转义都是可以的,但是推荐大家在开发过程中使用单引号,因为一旦转义符\多了,代码也会显得非常凌乱,可读性非常的差。
在我们的字符串中,也有许多的内置函数,我给大家举几个常用的:
1.大小写的转换:
javascript的字符串
效果如下:
javascript的字符串
toUpperCase()方法是将所有字母转换成大写字母,相反的,toLowerCase()方法是将所有字母转换成小写字母。

2.字符串的替换:
javascript的字符串
这里的效果如下:
javascript的字符串
replace是代表字符串的替换,第一个参数是需要替换的字符,也就是old ,第二个参数是需要替换成什么字符,也就是new。
但是我们发现了一个问题,这里只替换了第一个o,第二个o并没有替换,但是大部分时候我们需要的替换是全局性的,并不是只替换一个,那么全局性的我们要怎么做呢?这时候就要用到我们的正则表达式:
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。
我们来举个例子:
javascript的字符串
先看效果:
javascript的字符串
我们发现,已经出现了我们想要的效果,那么这段代码究竟是什么意思呢?
首先,我们定义了一个正则类RegExp,他的第一个参数就是规则字符串,在这里,我们的规则就是o字母,第二个ig是什么意思呢?i代表的时候忽略大小写,也就是大写的O还是小写的o,他都会替换掉,g代表全局。那么加起来就是替换掉全局的,不管大小写的o。
之后,我们把这个正则表达式放入replace的第一个参数,最后替换掉所有的o。
我们再来写几个正则表达式的例子:
javascript的字符串
效果如下:
javascript的字符串
记住,这里的[0-9]是一个规则字符串,意思就是0到9的所有数字都将作为替换的字符。
但是对于这类纯数字的规则定义,正则表达式有一些比较简洁的写法:
javascript的字符串
那么,也能得到同样的结果:
javascript的字符串
关于正则表达式的一些规则语法,我们在接下来的文章中会详细的讲到。在这里就不做过多的阐述了。

3.分隔转换成数组:
javascript的字符串
split的一个参数就是需要根据什么符号来截取,这里填了逗号,就表示会根据逗号来切割str这个字符串,最后形成一个数组。之后我们遍历这个数组,得出的结果如下:
javascript的字符串
我们会发现,m依次输出了1-9的数字。
注意,这里的console.log()是打印在console里面,alert()是弹出对话框。一般调试的时候,我们更偏向于使用console.log(),以后的代码中我也会更多的在console中进行输出和调试。

4.截取字符串:
javascript的字符串
输出效果如下:
javascript的字符串
这里的subtring的2个参数,分别代表从第几位截到第几位,注意!js里面的字符串,第一位是从0开始!不是从1开始,比如,这里的第0位是1,第5位是6,以此类推。那么我们来看着几行代码,第一句,substring里面的参数分别是0,5,代表的是从第0位截到第5位,第0位是1,第5位是6,但是输出的是12345,这就代表,我们的substring截出来的字符串是包含第一个参数,不包含第二个参数的。
但是我们发现,str.substring(1,5)和str.substring(5,1)的结果是一样的,这就是substring里一个类似于防止出现顺序混乱的判断机制。2个参数一定是先取小的参数为准,从小的参数截取到大的参数,最后返回一个字符串给你们。
截取字符串还有另外一种方法:substr(num1,num2):
javascript的字符串
效果如下:
javascript的字符串
注意,这里的参数和substring的参数不一样,这里的2个参数代表的意义分别是
substr(从第几位开始截取,截取几个数字);
那么这里的4,3代表的意义就是从第4位开始截取,截取3位。第4位是5,截取3位,最后形成的答案就是567。

5.获取字符所在的下标:
我们来看一行代码:
javascript的字符串
输出结果为2。意思就是,在str下标为2的字符是点 。 那么这个有什么用呢?我再多写两行代码,大家可能就明白了:
javascript的字符串
效果如下:
javascript的字符串
indexOf的参数就是需要获取下标的字符。注意,这里获取的下标是检测到所需要获取下标的字符串中的第一个字符。只返回第一个所获取到字符的下标。那么,在这里,我们获取到.的下标以后,就可以根据下标截取自己所需要的信息,当然这里可能用split更为快捷一点,这里只是作为一个展示使用。
但是有一个问题,假如我把这个str的内容改的特殊一点呢?
javascript的字符串
这样,我们再来看一下效果:
javascript的字符串
我们会发现,这样的截取不满足于我们所需要的数据,在这里,就需要用到lastIndexOf:
javascript的字符串
javascript的字符串
lastIndexOf,顾名思义,就是获取最后一个所对应字符的下标。原理和indexOf一样,indexOf是获取第一个所对应字符的下标,lastIndexOf是获取最后一个所对应字符的下标。