在javascript里 有关 indexOf 或者 startsWith 或者 endsWith 这样的方法

本文介绍JavaScript中通过扩展String原型来实现startsWith和endsWith方法的过程,并对比了使用indexOf方法的不同之处。

在js里,有indexOf 这样的方法,却没有像java一样的startsWith 或者 endsWith 这样的方法。

研究了半天,在js里,通通可以用 indexOf()!=-1 来代替。要记得,这个indexOf()!=-1 和 indexOf()>0 得到的结果是不同的。

比如下面的例子:(功能:希望输入的值不包含空格)

function checkSize(str){
    if(str.indexOf(' ')!=-1){
    alert("不能含有空格");
}

这个方法可以检查到 str 的开头,中间,结尾是不是空格

可是如果选择了 下面这个方法,却只能检测到 str 中间 和 结尾的空格,检测不到str开头的空格。

function checkSize(str){
    if(str.indexOf(' ')>0){
    alert("不能含有空格");
}

很奇怪的。呵呵。。。。

 

对js中startWith和endWith的扩展

 

<script language="JavaScript">
 function closeUl(code){
  alert(code);
  var list = document.getElementsByTagName("li");
  for(var i=0;i<list.length;i++){
   var curLi = list[i].id;
   if(curLi.indexOf(code) != -1 && curLi.length != code.length && curLi.startWith(code)){
    alert(curLi);
    if(document.getElementById(curLi).style.display == "none"){
     if(curLi.length == code.length+5){
      document.getElementById(curLi).style.display = "block";
     }
    }else{
     document.getElementById(curLi).style.display = "none";
    }
   }
  }
 }
 
 String.prototype.endWith=function(str){
  if(str==null||str==""||this.length==0||str.length>this.length)
     return false;
  if(this.substring(this.length-str.length)==str)
     return true;
  else
     return false;
  return true;
 }

 String.prototype.startWith=function(str){
  if(str==null||str==""||this.length==0||str.length>this.length)
   return false;
  if(this.substr(0,str.length)==str)
     return true;
  else
     return false;
  return true;
 }
</script>

<think>好的,用户想了解endsWith()方法以及对应的其他方法。首先,我需要确认endsWith()的用途,它通常用于字符串处理,检查字符串是否以特定后缀结尾。接下来,我应该考虑不同编程语言中的实现,比如JavaScript、Java和Python,因为用户可能对跨语言的信息感兴趣。 用户可能是在学习编程,或者在项目中遇到了相关问题,需要了解如何使用这个方法。他们可能还希望知道类似的方法,比如startsWith()来处理前缀,或者includes()检查子字符串是否存在。需要区分不同语言中的区别,比如Python中没有直接的endsWith()方法,而是用endswith(),并注意大小写敏感的问题。 此外,用户可能想了解这些方法的参数,比如是否支持指定起始和结束索引,或者是否有大小写不敏感的变体。需要举例说明,帮助用户更好地理解用法。同时,要提醒常见的注意事项,比如参数类型是否正确,空字符串的情况等。 最后,确保回答结构清晰,分点说明,使用代码示例,并比较不同语言的差异,这样用户能全面掌握相关知识,并应用到实际开发中。</think>`endsWith()` 是字符串处理中常用的方法,用于判断字符串是否以指定后缀结尾。不同编程语言中实现类似但略有差异,以下是跨语言对比及对应方法: --- ### 1. JavaScript 中的 `endsWith()` **语法**: ```javascript str.endsWith(searchString[, length]) ``` **功能**: 检查字符串是否以 `searchString` 结尾,可通过 `length` 限定检查范围(默认检查整个字符串)。 **示例**: ```javascript const str = "Hello, world!"; console.log(str.endsWith("world!")); // true console.log(str.endsWith("Hello", 5)); // true(检查前5个字符是否以"Hello"结尾) ``` **对应方法**: - `startsWith()`:检查字符串是否以指定前缀开头 ```javascript str.startsWith("Hello"); // true ``` --- ### 2. Java 中的 `endsWith()` **语法**: ```java boolean endsWith(String suffix) ``` **功能**: 检查字符串是否以 `suffix` 结尾。 **示例**: ```java String str = "Hello, world!"; System.out.println(str.endsWith("world!")); // true ``` **对应方法**: - `startsWith()`:检查字符串是否以指定前缀开头 ```java str.startsWith("Hello"); // true ``` --- ### 3. Python 中的 `endswith()` **语法**: ```python str.endswith(suffix[, start[, end]]) ``` **功能**: 检查字符串是否以 `suffix` 结尾,可通过 `start` 和 `end` 指定检查范围。 **示例**: ```python s = "Hello, world!" print(s.endswith("world!")) # True print(s.endswith("Hello", 0, 5)) # True(检查索引0到5的子串) ``` **对应方法**: - `startswith()`:检查字符串是否以指定前缀开头 ```python s.startswith("Hello") # True ``` --- ### 关键注意事项 1. **大小写敏感**:所有语言的 `endsWith()` 均区分大小写 ```javascript "Hello".endsWith("hello"); // false(JavaScript) ``` 2. **参数类型**: - JavaScript/Java:参数必须为字符串 - Python:可接受元组参数,匹配任意一个后缀 ```python s.endswith((".txt", ".md")) # 检查是否以.txt或.md结尾 ``` --- ### 其他相关方法 | 方法 | 功能 | 语言支持 | |-------------------|--------------------------------|-----------------------| | `includes()` | 检查是否包含子字符串 | JavaScript、Python(`in`) | | `indexOf()` | 返回子字符串首次出现的索引 | JavaScript、Java | | `lastIndexOf()` | 返回子字符串最后一次出现的索引 | JavaScript、Java | 可根据需求组合使用这些方法进行更灵活的字符串操作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值