js中如何获取一个字符串最后一个字符?

JavaScript09

js中如何获取一个字符串最后一个字符?,第1张

js获取一个字符串最后的一个字符,可以参考如下方法 :

方法一:运用String对象下的charAt方法

charAt() 方法可返回指定位置的字符。

str.charAt(str.length _ 1)

请注意,JavaScript 并没有一种有别于字符串类型的字符数据类型,所以返回的字符是长度为 1 的字符串

方法二:运用String对象下的substr方法

substr() 方法可在字符串中抽取从 start 下标开始的指定数目的字符。

str.substr(str.length-1,1)

重要事项:ECMAscript 没有对该方法进行标准化,因此反对使用它。

重要事项:在 IE 4 中,参数 start 的值无效。在这个 BUG 中,start 规定的是第 0 个字符的位置。(www.111cn.net)在之后的版本中,此 BUG 已被修正。

方法三:运用String对象下的split方法

split() 方法用于把一个字符串分割成字符串数组。

var str = “123456″

spstr = str.split(“”)

spstr[spstr.length-1]

主要是用正则表达式的分组匹配技术。1、以某字符结尾:例如sex$;2、中间不包含该字符串:^((?!sex).*)3、最后合起来就是:^((?!sex).*)sex$“正则表达式”选中以某些字符开始,某些字符结尾的字符串?的含义如下:字符 含意:\ 做为转意,即通常在"\"后面的字符不按原来意义解释,如/b/匹配字符"b" ,当b 前面加了反斜杆后/\b/,转意为匹配一个单词的边界。-或-对正则表达式功能字符的还原,如"*"匹配它前面元字符0次或多次,/a*/将匹配a,aa,aaa ,加了"\"后,/a\*/将只匹配"a*"。^ 匹配一个输入或一行的开头,/^a/匹配"an A",而不匹配"An a"$ 匹配一个输入或一行的结尾,/a$/匹配"An a",而不匹配"an A"* 匹配前面元字符0次或多次,/ba*/将匹配b,ba,baa,baaa+ 匹配前面元字符1次或多次,/ba*/将匹配ba,baa,baaa? 匹配前面元字符0次或1次,/ba*/将匹配b,ba(x) 匹配x 保存x 在名为$1...$9的变量中x|y 匹配x 或y,{n} 精确匹配n 次,{n,} 匹配n 次以上{n,m} 匹配n-m 次,[xyz] 字符集(character set),匹配这个集合中的任一一个字符(或元字符)[^xyz] 不匹配这个集合中的任何一个字符,[\b] 匹配一个退格符,\b 匹配一个单词的边界\B 匹配一个单词的非边界,\cX 这儿,X 是一个控制符,/\cM/匹配Ctrl-M。

Java中判断一个字符串是否以什么结尾,主要是使用String对象的endwith方法,如果是,则返回true,如果不是则返回false,如下代码:

public class StringDemo{

public static void main(String args[]){

String s1="this is my startsWith string"

String sd="startsWith"

if (s1.startsWith(sd))

//startsWith()方法判断字符串s1是否从字符串sd开始

s1=s1.substring(sd.length())

else

if(s1.endsWith(sd))

//endWith()方法判断字符串s1是否从字符串sd结尾

s1=s1.substring(0,s1.length()-sd.length())

else

{

int index=s1.indexOf(sd)

//indexOf()搜索字符或子字符串首次出现,这里的index等于11

if(index!=-1)

{

String s2=s1.substring(0,index)

//从字符串s1的首字符开始,取index个字符

String s3=s1.substring(index+sd.length())

//取字符串s1的第19个字符后面的字符串

s1=s2+s3

}

else

System.out.println("string \""+sd+"\" not found")

}

System.out.println(s1)

}

}

当然,java的String对象还提供了判断是否以哪个字母开头的方法startwith(),这些其实内部的方法是将字符串进行拆分,逐个进行比较。