上一篇 | 下一篇

9.3.5 find函数

发布: 2007-7-20 13:51 | 作者: 佚名 | 来源: 转载 | 查看: 160次


9.3.5  find函数
find函数用于从给定的字符串中寻找并返回第一处匹配给定子字符串开始的序号。如果字符串不能包含与该子字符串相匹配的部分,则返回-1。两个字符串相匹配就是指两个字符串是完全一样的,包括大小写一样。例如,字符串"abcd"与"abcd"就是互相匹配的,字符串"myabcdef"中就包含有与"abcd"相匹配的子字符串。

find函数的语法格式为:

String.find(string, subString)

它的两个参数string和subString的取值都是字符串或可以合法地转换为字符串的数据,其中string是用于从中寻找子字符串的字符串,subString是想要寻找的子字符串。

仍以字符串"myabcdef"和"abcd"为例来说,由于字符串"myabcdef"中包含有与"abcd"相匹配的子字符串,该子字符串在"myabcdef"中开始的序号是2,即从第3个字符开始,所以String.find("myabcdef", "abcd")返回的结果为2。

由于字符串中的字符序号都是整数,所以find函数能够运算时返回的结果都是整数。如果给定的参数值不合法,find函数无法寻找子字符串的序号,则会返回无效值invalid。

作为举例,我们给出使用find函数的几个例子:

 

var a = "abcde";

var b = string.find(a, "cd");                      // 变量a中含有cd且从第3个字符开始,故b = 2

var c = string.find(34.2, "de");                 // 无法匹配,所以c = -1

var d = string.find(a, "qz");                      // 无法匹配,所以d = -1

var e = string.find(34, "3");                      // 34转换为字符串后第1个字符与"3"匹配,故e = 0

 

 

9.3.6  replace函数
replace函数用于在一个给定的字符串中,使用一个新的子字符串替换其中所有旧的子字符串,而且替换是严格区分大小写的。replace函数的语法格式如下:

String.replace(string, oldSubString, newSubString)

它有3个参数,各参数的取值都是字符串或可以合法转换为字符串的数据。string参数代表给定的字符串,oldSubString参数代表字符串string中含有的将被替换掉的旧字符串,newSubString参数代表用于替换的新字符串。replace函数的功能就是在string字符串中,将凡是有oldSubString的地方,都以newSubString来代替。

例如,下述几条语句就给出了使用replace函数替换字符串的例子:

 

var a = "Hello Christina. What is up Christina?";

var newName = "Marie"

var oldName = "Christina"

var c = String.replace(a, oldName, newName);           // 将给定字符串中的Christina一律替换为Marie,

                            // 所以结果为c = "Hello Marie. What is up Marie?"

var d = String.replace(a, newName, oldName);          // 将给定字符串中的Marie一律替换为Christina,

                            // 但其中没有Marie,所以不替换,结果为d = "Hello Christina. What is up Christina?"

 

9.3.7  elements函数
elements函数用于计算并返回给定字符串string中被分隔符seprator所分割得到的元素个数。WMLScript规定空字符串也是有效的分割元素,而字符串至少是个空字符串,所以字符串至少含有1个分隔元素,因此elements函数的返回结果不会是一个小于或等于0的数。elements函数的语法格式为:

String.elements(string, separator)

它的参数string和separator的取值均为字符串,separator字符串中只有第1个字符才用作分割符。如果两个参数的取值均符合要求,则elements函数可返回一个代表分隔元素个数的整数值,否则就会返回无效值invalid。特别是,如果separator是空字符串,那么elements函数也会返回invalid。

下面我们给出使用elements函数的几个例子,同时给出了返回结果:

 

var a = "My name is Joe; Age 50;";

var b = String.elements(a, " ");                          // 分隔符为空格,故b = 6

var c = String.elements(a, ";");                           // 分隔符为“;”,故c = 3

var d = String.elements("", ";");                         // 分隔符为“;”而被分字符串为空串,故d = 1

var e = String.elements("a", ";");                       // 分隔符为“;”,故e = 1

var f = String.elements(";", ";");                        // 分隔符为“;”,故f = 2

var g = String.elements(";;,;", ";,");                    // 分隔符实取为“;”,故g = 4

 

9.3.8  elementAt函数
elementAt函数用于在给定的字符串中,搜索并返回由序号index指定的元素,该元素使用separator定义的分隔符来分割。elementAt函数的语法格式如下:

String.elementAt(string, index, separator)

它有3个参数,其中string是给定的字符串,index是元素的序号,separator是元素的分割符。elementAt函数的返回值是字符串或无效值invalid。

elementAt函数工作的一般规则是:

(1) 如果index比0小,那么elementAt函数就会返回string中的第1个元素;

(2) 如果index比元素的个数还多,那么就返回最后1个元素;

(3) 如果string是空字符串,elementAt函数返回的也将是1个空字符串;

(4) 如果index是浮点数,那么WMLScript将首先使用Float.int( )函数功能将其转换为整数,然后再通过elementAt函数进行搜索;

(5) 如果separator是空字符串,则返回无效值invalid。

此新闻共有2页 1 2

字号: | 推荐给好友

 

评分:0

我来说两句

seccode