欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

js中如何替换掉最后一个匹配的字符串? js 替换最后几个字符串 以指定的字符串开头或结尾 有大用

例如:一个字符串“14-10,14-11,14-12,14-13,14-12,14-1”,我要把最后的",14-1"替换为空,请问用replace怎么写js代码?

最佳答案
 有大用

替换掉最后一个字符串。

思路:用lastIndexOf 获取出字符串的下标,然后再截取或是替换都可以实现。

1
2
3
4
5
6
简单的小例子:
var a = 'ababababababa';
var b = a.substring(a.lastIndexOf('ba'));  //这样就获取到了最后的'ba'
var c = a.substring(0,a.lastIndexOf('ba')); //这样就获取到了前面的字符串。
就可以随意的字符串拼写了。
a = c + '11111';   //这样a就变成了 abababababa11111
来自  https://zhidao.baidu.com/question/437519145.html


 1861人阅读 评论(0) 收藏 举报

JavaScript中判断字符串是否以指定字符串开始或结尾

有大用

[javascript] view plain copy
 
  1. //判断当前字符串是否以str开始 先判断是否存在function是避免和js原生方法冲突,自定义方法的效率不如原生的高  
  2.      if (typeof String.prototype.startsWith != 'function'){   
  3.        String.prototype.startsWith = function (str){  
  4.           return this.slice(0, str.length) == str;  
  5.        };  
  6.      }  
  7.       
  8.      //判断当前字符串是否以str结束  
  9.      if (typeof String.prototype.endsWith != 'function') {  
  10.        String.prototype.endsWith = function (str){  
  11.           return this.slice(-str.length) == str;  
  12.        };  
  13.      }  
  14.   
  15.      //测试程序  
  16.      var sCompareStr = "abcdefg123";//比较字符串  
  17.      var sBeCompareStr = "fg";//被比较字符串  
  18.      if(sCompareStr.endsWith(sBeCompareStr)){//这里可以替换为startsWith  
  19.           alert(sCompareStr+" 是以:"+sBeCompareStr+" 结束");  
  20.      }else{  
  21.           alert(sCompareStr+" 不是以:"+sBeCompareStr+" 结束");  
  22.      }  
这样书写的原因:

之所以在将整个代码放在if判断中是因为避免以后原生的js版本中增加了同类方法而导致代码效率降低。因为对于同名方法来说,js原生的代码效率要高于用户自己扩展的方法
之所以使用slice方法而不使用indexof方法,是由于indexof方法在处理较长的字符串时效率比较低

来自  http://blog.csdn.net/dalinaidalin/article/details/46344459


javascript中判断字符串是否以指定字符串开始或结尾

 

  我们都知道Java中的String提供了用于判断是否以指定字符串开头、结尾的方法。分别是startWith和endWith,但是最近开发过程中我也遇到了类似的问题只不过是在javascript中,需要判断一个链接地址是否以http://开头或判断一个地址是否以"/"开头。

     但是通过查看API,原生的javascript的String并没有提供现成的办法来解决此类需求。因此我就开始想办法如何能够正确的判断某个字符串是否以指定的字符串开始或者结尾。

     后来终于找到了好的办法,特记录如下。

     我会首先将代码和测试用例贴上,然后再具体解释为什么要这么写

复制代码
     //判断当前字符串是否以str开始 先判断是否存在function是避免和js原生方法冲突,自定义方法的效率不如原生的高
     if (typeof String.prototype.startsWith != 'function'){
       String.prototype.startsWith = function (str){
          return this.slice(0, str.length) == str;
       };
     }
    
     //判断当前字符串是否以str结束
     if (typeof String.prototype.endsWith != 'function') {
       String.prototype.endsWith = function (str){
          return this.slice(-str.length) == str;
       };
     }

     //测试程序
     var sCompareStr = "abcdefg123";//比较字符串
     var sBeCompareStr = "fg";//被比较字符串
     if(sCompareStr.endsWith(sBeCompareStr)){//这里可以替换为startsWith
          alert(sCompareStr+" 是以:"+sBeCompareStr+" 结束");
     }else{
          alert(sCompareStr+" 不是以:"+sBeCompareStr+" 结束");
     }
复制代码

这样书写的原因:

  1. 之所以在将整个代码放在if判断中是因为避免以后原生的js版本中增加了同类方法而导致代码效率降低。因为对于同名方法来说,js原生的代码效率要高于用户自己扩展的方法
  2. 之所以使用slice方法而不使用indexof方法,是由于indexof方法在处理较长的字符串时效率比较低

  最后注明一下版权,本文由yutiansanshou原创发表,你可以任意转载,但必需在明显位置注明作者和出处,而且不能用于任何商业用途

来自  http://www.cnblogs.com/yutiansanshou/archive/2012/12/03/2800505.html
普通分类: