Javascript基础教程之数据类型 (字符串 String)


Posted in Javascript onJanuary 18, 2015

一.字符串

var language = "javascript";

var language = 'javascript';

字符串可以使用双引号和单引号,根据个人爱好而定。

字符串具有length属性,可以返回变量中字符串的个数。

var test1 = "teacher" ;

    document.write(test1.length);

//输出test1的字符串个数:7

反之,想获取指定位置的字符,可以使用charAt()函数(第一个字符为0,第二个字符为1,依次类推)

 var test1 = "teacher" ;

    document.write(test1.charAt(1));

//运行结果为:e ,

如果想取得变量中的字符串,可以采用slice(),substring()或者substr()函数。

其中,substring()和slice()都接受两个参数

    var test1 = "teacher" ;

    document.write(test1.substring(1)+"<br>");// 输出eacher

    document.write(test1.substring(1,4)+"<br>"); //输出eac

    document.write(test1.slice(1,4)+"<br>"); //输出eac

    document.write(test1.slice(4)+"<br>"); //输出her

    document.write(test1 + "<br>");//完整字符串

 从以上内容看出,substring()和slice()都不改变字符串内容,只返回字符串的内容。

substing()和slice()的区别主要是对负数的处理不同。

负数参数对于slice()而言,从字符串末尾往前计数,对于substring()来说,则是忽略负数,从0开始处理,并将两个参数中较小的数字作为起始位,较大的作为结束位。

例如substring(2,-3)等同于substing(2,0),也就是等同于substring(0,2)。

   var test1 = "teacher" ;

    document.write(test1.substring(2,-3)+"<br>"); //te

    document.write(test1.substring(2,0)+"<br>"); //te

    document.write(test1.substring(0,2)+"<br>"); //te

    document.write(test1.slice(2,-3)+"<br>"); //ac

    document.write(test1 + "<br>"); //teacher

 substring()和substr()的区别,举例说明。

    var tt,ss ;

    var s = "hellobeijing";

    tt = s.substring(2,8)+"<br>";

    ss = s.substr(2,8);

    document.write(tt);//输出:llobeij 输出下标2到下标8之间的字符

    document.write(ss); //输出:llobeiji (输出下标2后的8个字符)

 对于用法,另一博友有更多实例(地址)

在搜索字符串上,Javascript提供了indexof()和lastindexof()两个函数。

 var s = "woaibeijing";

    dd = s.indexOf("e")+"<br>";//从前往后

    ee = s.indexOf("e",3)+"<br>";//可选参数,从第几个字符往后查找

    ff = s.lastIndexOf("e")+"<br>";//从后往前

    gg = s.lastIndexOf("e",3)+"<br>"; //可选参数,从第几个字符往前查找

    hh = s.lastIndexOf("H")+"<br>";

    document.write(dd);

    document.write(ff);

    document.write(ee);

    document.write(gg);

    document.write(hh);

另外,indexof()和lastindexof()的用法推荐查看这篇文章。https://3water.com/article/44921.htm

JS中的indexOf和lastIndexOf是处理字符串的一个非常好用的函数,下面对它们的定义、用法、注意事项以及使用建议分别作介绍。

1、strObj.indexOf(subString[, startIndex])

功能:返回源字符串内第一次出现指定子字符串的首个字符在源字符串中的索引值(源字符串内第n个字符的索引值为n-1),是整数。

参数含义:

strObj是源字符串,必选项。

subString是在源字符串对象中查找的子字符串,必选项。

startIndex是开始索引值,indexOf函数是从源字符串的索引值为startIndex的字符(即第startIndex+1个字符)开始查找,可选项。省略时,从源字符串索引值为0的字符(即第1个字符)开始查找。

实例分析:

用法1(不指定startIndex值):var i="huoshandao.com".indexOfOf("a"):则i=5
                                               相当于var i="huoshandao.com".indexOf("a",0)
用法2(指定startIndex值):var i="huoshandao.com".indexOf("a",6):则i=8
提示:可以用alert(i);语句测试结果,以下例子也一样。

注意事项

1)strObj既可以是字符串,也可以是字符串变量。
     [例子]
     strObj为字符串:var i="huoshandao.com".indexOf("."):
     strObj为字符串变量:var str="huoshandao.com";var i=str.indexOf(".");
2)subString不能为空字符串,如果为空字符串,返回值为0,但可以是空格。
     [例子]
     subString为空字符串:var i="huo shan dao".indexOf(""):则i=0
     subString为空格字符串:var i="huo shan dao".indexOf(" "):则i=3
3)第1个字符的startIndex值是0,是最小索引值;第2个字符的startIndex值是1;最后一个字符的startIndex值则是源字符串长度减1,是最大索引值。
4)如果没有找到子字符串,则返回 -1。
     [例子]
     var i="huoshandao.com".indexOf("huosan"):则i=-1
5)如果startIndex是负数,则相当于startIndex等于0的情况。如果它大于最大索引值,则相当于startIndex等于最大索引值的情况。
    [例子]
     startIndex为负数: var i="huoshandao.com".indexOf(".",-3);则i=10
                                   与var i="huoshandao.com".indexOf(".",0);结果一样
     startIndex大于等于字符串长度:var i="huoshandao.com_".indexOf("_",16);则i=-1
                                                       与var i="huoshandao.com_".indexOf("_",14);i=14

2、strObj.lastIndexOf(subString[, startIndex])

indexOf 函数是从左向右查找,但实际应用中我们有时想得到从右向左出现某个字符或字符串的首个字符索引值,针对这种情况,JS给出另外一个函数 lastIndexOf来解决这个问题,使用方法和indexOf相似,只是它从右向左查找而已,具体就不再重复,简单举几个例子,和indexOf作比 较:

例1:var i="huo.shan.dao.com".lastIndexOf(".");则i=12而var i="huo.shan.dao.com".indexOf(".");的i=3
例2:var i="huoshandao.com_".lastIndexOf("_",16);则i=14而var i="huoshandao.com_".indexOf("_",16);则i=-1

3、使用建议

为了避免出乎意料的结果,除非有特殊用途,建议遵循以下原则:

1、startIndex为非负数,并且不大于最大索引值。如果startIndex是变量,要先判断其值是否在这个范围内。
2、如果子字符串subString是变量的话,要先判断其是否为空再使用indexOf或lastIndexOf函数。
3、输入子字符串时要特别注意全角字符和半角字符的区别。
4、注意indexOf和lastIndexOf里面的大小写,JS对大小写非常敏感。建议用Dreamweaver编程,如果函数名大小写写错的话,函数颜色是黑色,写对的话则会变成另外一种颜色。

Javascript 相关文章推荐
js下用gb2312编码解码实现方法
Dec 31 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
Apr 09 Javascript
JQuery 应用 JQuery.groupTable.js
Dec 15 Javascript
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
Feb 14 Javascript
javascript与cookie 的问题详解
Nov 11 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
Apr 12 Javascript
JavaScript框架(iframe)操作总结
Apr 16 Javascript
jQuery实现点击小图显示大图代码分享
Aug 25 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
javascript运算符——逻辑运算符全面解析
Jun 27 Javascript
JS填写银行卡号每隔4位数字加一个空格
Dec 19 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
Jan 25 Javascript
Javascript基础教程之变量
Jan 18 #Javascript
Javascript基础教程之JavaScript语法
Jan 18 #Javascript
js简单抽奖代码
Jan 16 #Javascript
JS取得绝对路径的实现代码
Jan 16 #Javascript
jQuery中scrollLeft()方法用法实例
Jan 16 #Javascript
jQuery中scrollTop()方法用法实例
Jan 16 #Javascript
jQuery中position()方法用法实例
Jan 16 #Javascript
You might like
2020年4月放送决定!第2期TV动画《邪神酱飞踢》视觉图&主题曲情报公开!
2020/03/06 日漫
MYSQL环境变量设置方法
2007/01/15 PHP
php 上传功能实例代码
2010/04/13 PHP
php+mysql实现无限级分类
2015/11/11 PHP
Laravel 5.4向IoC容器中添加自定义类的方法示例
2017/08/15 PHP
js实现GridView单选效果自动设置交替行、选中行、鼠标移动行背景色
2010/05/27 Javascript
解析jQuery的三种bind/One/Live事件绑定使用方法
2013/12/30 Javascript
js事件监听器用法实例详解
2015/06/01 Javascript
RequireJS入门一之实现第一个例子
2015/09/30 Javascript
JS基于构造函数实现的菜单滑动显隐效果【测试可用】
2016/06/21 Javascript
ionic组件ion-tabs选项卡切换效果实例
2016/08/27 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
jQuery实现回到顶部效果
2020/10/19 jQuery
[02:49:21]2019完美盛典全程录像
2019/12/08 DOTA
python中的闭包函数
2018/02/09 Python
python3之模块psutil系统性能信息使用
2018/05/30 Python
Python中交换两个元素的实现方法
2018/06/29 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
2019/12/19 Python
Django修改app名称和数据表迁移方案实现
2020/09/17 Python
Python爬虫之Selenium鼠标事件的实现
2020/12/04 Python
关于多种方式完美解决Python pip命令下载第三方库的问题
2020/12/21 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
美国的Eastbay旗下的运动款子品牌:Final-Score
2018/01/01 全球购物
英国领先的运动营养品牌:Protein Dynamix
2018/01/02 全球购物
ALDO美国官网:加拿大女鞋品牌
2018/12/28 全球购物
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
戴森香港官方网站:Dyson香港
2021/02/11 全球购物
运动会解说词50字
2014/01/18 职场文书
商务考察邀请函范文
2014/01/21 职场文书
青年安全生产示范岗事迹材料
2014/05/04 职场文书
创先争优演讲稿
2014/09/15 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
食堂卫生管理制度
2015/08/04 职场文书
SQL Server数据库查询出现阻塞之性能调优
2022/04/10 SQL Server