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 判断代码全收集
Apr 28 Javascript
自己动手制作jquery插件之自动添加删除行的实现
Oct 13 Javascript
window.open关于浏览器拦截问题分析及解决方法
Feb 05 Javascript
js 金额格式化来回转换示例
Feb 23 Javascript
用js读、写、删除Cookie代码续篇
Dec 03 Javascript
JS时间特效最常用的三款
Aug 19 Javascript
莱鸟介绍javascript onclick事件
Jan 06 Javascript
angularjs封装bootstrap时间插件datetimepicker
Jun 20 Javascript
js实现砖头在页面拖拉效果
Nov 20 Javascript
微信小程序实战之自定义模态弹窗(8)
Apr 18 Javascript
jQuery手风琴的简单制作
May 12 jQuery
Vue组件跨层级获取组件操作
Jul 27 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
php下尝试使用GraphicsMagick的缩略图功能
2011/01/01 PHP
jquery ajax 同步异步的执行 return值不能取得的解决方案
2012/01/08 Javascript
百度移动版的url编码解码示例
2014/04/29 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
Javascript中Array.prototype.map()详解
2014/10/22 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
jQuery实现切换字体大小的方法
2015/03/10 Javascript
jQuery 获取跨域XML(RSS)数据的相关总结分析
2016/05/18 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单的实现代码
2016/06/23 Javascript
BootstrapValidator不触发校验的实现代码
2016/09/28 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
vue项目部署上线遇到的问题及解决方法
2018/06/10 Javascript
vue+elementUI组件table实现前端分页功能
2020/11/15 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
Angular+Ionic使用queryParams实现跳转页传值的方法
2020/09/05 Javascript
web.py中调用文件夹内模板的方法
2014/08/26 Python
在Python中使用mechanize模块模拟浏览器功能
2015/05/05 Python
Fiddler如何抓取手机APP数据包
2016/01/22 Python
python 生成器生成杨辉三角的方法(必看)
2017/04/10 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
Python os.access()用法实例
2019/02/18 Python
pandas基于时间序列的固定时间间隔求均值的方法
2019/07/04 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
使用tensorboard可视化loss和acc的实例
2020/01/21 Python
python的数学算法函数及公式用法
2020/11/18 Python
HTML5 贪吃蛇游戏实现思路及源代码
2013/09/03 HTML / CSS
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
2014/04/23 面试题
企业厂长岗位职责
2013/12/17 职场文书
党的生日活动方案
2014/08/15 职场文书
2014年派出所工作总结
2014/11/21 职场文书
演讲比赛主持词
2015/06/29 职场文书
Vue鼠标滚轮滚动切换路由效果的实现方法
2021/08/04 Vue.js
ubuntu安装jupyter并设置远程访问的实现
2022/03/31 Python