javascript实例教程(17) 使用字符串函数

2016-01-29 11:29 33 1 收藏

javascript实例教程(17) 使用字符串函数,&#106avascript实例教程(17) 使用字符串函数

【 tulaoshi.com - Javascript 】

  字符串对象提供了许多方法,但是很少的程序设计人员充分利用它们,这对于一个程序员来说,不能不说这是一种缺陷。字符串提供的方法可以用于操作字符、产生HTML标签以及搜索字符串等等。

下面首先说说什么是字符串。在JavaScript语言中,字符串就是一种对象。就象在Java中,它们不是作为一系列的字符被存储的,所以字符串的操作必须使用内置的构造器和设置函数来完成。在后来的版本中有了字符串构造器和更多的关于对象的概念。在这个层次上说,字符串是由字母而不是数字组成的变量,这就是字符串的概念。

举个例子,一些有效的字符串为"Hello", "Bob", "Bob2", "33", "33.3",而33或者33.3就不是字符串了。所有的字符串有一个共同的属性,称为长度,这个长度返回了字符串中字符的个数。

最常用的字符串方法是:indexOf()、charAt()和substring()。因为这几个方法在JavaScript中经常出现,所以下面我对它们进行详细说明:

indexOf()函数

这个函数允许你判断一个字符串是否存在于一个更长的字符串中以及它所处的位置。它等价于C语言中的strstr函数以及Visual Basic语言中的inStr函数。这个方法也有一个相应的函数:lastIndexOf(),这个函数字符串的另外一端搜索。

就象函数的名字所意味的,返回数值表明字符串在所搜索字符串中的位置。如果在被搜索的字符串中没有找到要查找的字符串就返回-1。这里要注意,在JavaScript中-1是一个普通的整数,而不是一个布尔型(Boolen)的数。以下是具体例子:

var myString = "Have a nice day!";

alert(myString.indexOf("a")); //这里返回1

alert(myString.lastIndexOf("a")); // 这里返回 13

这里还需要再提醒一次,在JavaScript中的数组的索引是从0开始,这跟C语言是遗言的。所以上面的语句alert(myString.indexOf("a"))是返回1,因为”a” 处于字符串"Have a nice day!"的第二个位置。

细心一点,你可能会发现字符串"Have a nice day!"还有一个字符"a",那怎么才能找到第二个字母"a"呢?这是一个很好的问题,为了做到这一点,我们必须再介绍这个函数的第二个参数。第二个参数是一个整数,它指示了字符串中开始搜索的位置。

为了综合以上的知识,下面对代码进行一些来找到所有字符"a",具体代码如下:

var myString = "Have a nice day!";

var index = myString.indexOf("a");

while (index != -1) {

alert(index);

index = myString.indexOf("a", index + 1);
// start search after last match found

}

下面详细解释一下这段代码:变量index被初始化为第一个"a"所在的位置(如果没有"a",那么变量index就为-1)。然后再给出一个循环,条件是index!=-1。在每次的循环中,我们将变量index加1,即从找到的"a"后面第一个字符开始继续查找,直至将所有的字符"a"找到为止。当再也没有字符"a"在字符串变量mySring中找到的时候,就返回-1值,此时index就等于-1,不满足循环条件index!=-1,故导致循环结束。而alert(index)语句的输出为:1,5,13。

在这个例子中我们只是展示indexOf()进行单一字符的搜索。如果你经常使用这个函数,你会发现它可以搜索任意的字符或者字符串。

charAt()函数

这个函数返回在字符串中字符处在给定的位置。从本质上讲,它是substring()方法的一个特例,但是它也有自己的用途。如果你原来是个C语言程序员或者其它相近的语言的程序员,那么你就能理解当引用字符的时候,可以利用string.charAt(index)来代替string[index]。

下面我们来在一个表单输入中使用这个函数。表单中有email地址,当然这个email地址要限制为字符、数字以及一个"@"符号。我们可以一次性讲字符串分列为单个字符来对它进行强制。详细代码如下:

<SCRIPT language="JavaScript" <!-- Hide from older browsers

var parsed = true;

var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-";

var email = prompt("What is your email address?", "nobody@nowhere.com");

for (var i=0; i < email.length; i++) {

var letter = email.charAt(i).toLowerCase();

if (validchars.indexOf(letter) != -1)

continue;

alert("Invalid character: " + letter);

parsed = false;

break;

}

if (parsed) alert("Your email address contains all valid characters.");

// Stop hiding --

</SCRIPT



(图1)

如图1所示。你可以按下”check Email”按钮,此时就会弹出一个对话框,如图2所示。



(图2)

你可以在上面随便填入一个email地址

来源:http://www.tulaoshi.com/n/20160129/1482486.html

延伸阅读
  HoTMetal中使用Javascript 3.什么样的资源适合于脚本编写 当利用HotMetal PRO 6.0编写宏的时候,你可以使用以下几种资源: 预定义事件 HoTMetaL PRO 6.0定义了几个事件以及特殊的用户定义的宏来处理它们。这些宏应该根基HoTMetal的指令来命名的。比如,宏On_Application_Open是在每次HoTMetal PRO 6.0打开的时候被调用的。用户需要...
  随着互联网的飞速发展,地球变得越来越小,人们可以跨越时间和空间得界限进行交流于合作。但是随之也产生了一些肆意搞破坏的黑客,这就使得程序设计人员在编制应用程序中要考虑到黑客袭击这个问题,所以自然而然地就会想到保护。本节教程将教你怎样利用Javascript进行密码保护。利用JavaScript来对网页进行密码保护有几种方法。最早...
  利用Javascript产生鼠标移过时弹出窗口 本节教程将介绍当鼠标移过图片的时候弹出一个窗口的设计。这个弹出的窗口是一个标准的网页,你可以设置它的大小。 首先在网页的Header标签处加入以下代码: <SCRIPT LANGUAGE="Javascript" var popupwindow_window = null; function popupwindow(status,url) { if(status != 0) { if(po...
  使用JavaScript中的OLE Automation 2. 什么是绑定 在你适用一个对象模型的属性、方法和事件之前,你必需首先创建一个计划性的引用给包含了你想适用的属性、方法或者事件的类。你可以通过声明一个局部对象变量以保留一个引用给这个对象来实现这个目的。然后,你要为局部变量指定一个对象的应用。 VB和VBScript使用CreateObject()函数...
  使用JavaScript中的OLE Automation 3. 怎样创建Automation对象的新实例 Jscript(微软版本的JavaScript)是一个宽松类型的语言。换句话说,变量不是明显定义为指定的数据类型。你不能声明一个变量为指定的对象类型,所以早绑定不可能在JScript中。Jscript的ActiveXObject()构造函数通常用于为对象创建一个迟绑定界面: var wdApp; //...

经验教程

517

收藏

8
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部