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

一.字符串

复制代码 代码如下:

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()的用法推荐查看这篇文章。http://www.jb51.net/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编程,如果函数名大小写写错的话,函数颜色是黑色,写对的话则会变成另外一种颜色。

时间: 2024-11-01 01:25:59

Javascript基础教程之数据类型 (字符串 String)_基础知识的相关文章

JavaScript基础教程——入门必看篇_基础知识

JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题.     一. JavaScript 1.什么是JavaScript JavaScript是一种描述性语言,也是一种基于对象(Object)和事件驱动(Event Driven)的,并具有安全性的脚本语言. 2.JavaScript的特点 JavaScript主要用来向HTML页面添加交互行为. J

深入解析JavaScript中的数字对象与字符串对象_基础知识

JavaScript Number 对象JavaScript 只有一种数字类型. 可以使用也可以不使用小数点来书写数字.JavaScript 数字 JavaScript 数字可以使用也可以不使用小数点来书写: 实例 var pi=3.14; // 使用小数点 var x=34; // 不使用小数点 极大或极小的数字可通过科学(指数)计数法来写: 实例 var y=123e5; // 12300000 var z=123e-5; // 0.00123 所有 JavaScript 数字均为 64 位

JavaScript入门教程(12) js对象化编程_基础知识

with 语句 为一个或一组语句指定默认对象. 用法: with (<对象>) <语句>; with 语句通常用来缩短特定情形下必须写的代码量.在下面的例子中,请注意 Math 的重复使用: x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10); y = Math.tan(14 * Math.E); 当使用 with 语句时,代码变得更短且更易读: 复制代码 代码如下: with (Math) { x = cos(3 * PI) + sin

JavaScript入门教程(10) 认识其他对象_基础知识

anchors[]; links[]; Link 连接对象用法:document.anchors[[x]]; document.links[[x]]; <anchorId>; <linkId> document.anchors 是一个数组,包含了文档中所有锚标记(包含 name 属性的<a>标记),按照在文档中的次序,从 0 开始给每个锚标记定义了一个下标. document.links 也是一个数组,包含了文档中所有连接标记(包含 href 属性的<a>标

Javascript实例教程(19) 使用HoTMetal(1)_基础知识

HotMetal PRO 6.0是强大易用的网站编辑和发布工具.在本教程中我们在HotMetal中使用javascript.在HotMetal中,JavaScript支持是基于HotMetal为你提供了丰富的资源以及对象.它包含了几个新的对象,比如访问DOM的对象.另外,HotMetal支持一些ActiveX控件.这些控件以及Windows脚本支持使得HotMetal成为了JavaScript设计人员一个不可多的功能强大的开发环境. 在本节教程中,你将可以学到: 怎样为按钮增加连接宏: 怎样为菜

Javascript实例教程(19) 使用HoTMetal(6)_基础知识

HoTMetal中使用javascript 6.怎样编写一个保存模块脚本 在本节教程的例子中,我们创建了一个新的保存模块文件对话框.HoTMetaL里面有几个模板你可以从中进行选择.模板只是一个普通的网页,这个网页被保存HoTMetaL应用程序目录的Template模板中.当你从文件菜单中选择新项目的时候,其中一个标签选项是Page From Template.当你选择了它,就会弹出一个标签对话框,上面包含了各种模板: General. WebTV. W3C. Frame Pages. Layo

Javascript实例教程(19) 使用HoTMetal(3)_基础知识

HoTMetal中使用javascript 3.什么样的资源适合于脚本编写 当利用HotMetal PRO 6.0编写宏的时候,你可以使用以下几种资源: 预定义事件 HoTMetaL PRO 6.0定义了几个事件以及特殊的用户定义的宏来处理它们.这些宏应该根基HoTMetal的指令来命名的.比如,宏On_Application_Open是在每次HoTMetal PRO 6.0打开的时候被调用的.用户需要定义这个宏并将它增加到Macro/hotmetal.mcr文件中.我们在本教程中将涉及到所有的

Javascript实例教程(19) 使用HoTMetal(2)_基础知识

2.怎样为菜单条增加按钮 有几中方法可以运行javascript宏.第一种方法是将工具条的按钮与宏联系起来并且将这个按钮增加到HoTMetal的用户界面中去,这种方法在前面已经讲过了.在本节教程中将对第一种方法进行一点点变形,从对话框中将新的按钮拖拉到工具条区域,如图6所示是拖拉后的HotMetal的窗口: (图6) 当调用工具条和菜单定制对话框的时候,一定要注意新的工具条(命名为ToolBar1)已经被创建.这个工具条标签允许你改变工具条的名字以及它的格式.一旦你创建了一个新的工具条,你就可以

Javascript实例教程(19) 使用HoTMetal(5)_基础知识

  HoTMetal中使用javascript 5.怎样编写脚本来检查上次修改的日期 在本节教程中你将可以学到怎样编写一个宏来检查是否有任何的程序已经利用HoTMetaL中修改过一个文件.这个宏包括了以下几个检查的更新特性:On_Document_Open_Complete.On_Document_Activate和 On_Application_Activate.在前面的教程中,这些宏的名字已经被预定义了,所以这里不能对它们进行修改.这些名字指定了事件来触发宏.这个event-macro关联是

Javascript实例教程(19) 使用HoTMetal(4)_基础知识

HoTMetal中使用javascript 4. 怎样编写文档格式的脚本 下面举个宏的例子:根据预定义的页面的布置准则来格式化文档.为了观察这个宏的效应,请关闭Enable Source Layout(允许源程序布局)按钮,具体从菜单中选择Tools(工具)->Customization(定制).我们首先打开应用程序来初始化一些全局的变量.另外宏的名字必须为n_Application_Open,具体的代码如下: <MACRO name="On_Application_Open&quo