JS如何判断字符串是以指定字符串结尾

JavaScript012

JS如何判断字符串是以指定字符串结尾,第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(),这些其实内部的方法是将字符串进行拆分,逐个进行比较。