js中如何替换掉最后一个匹配的字符串?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js中如何替换掉最后一个匹配的字符串?相关的知识,希望对你有一定的参考价值。

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

替换掉最后一个字符串。

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

简单的小例子:
var a = \'ababababababa\';
var b = a.substring(a.lastIndexOf(\'ba\'));  //这样就获取到了最后的\'ba\'
var c = a.substring(0,a.lastIndexOf(\'ba\')); //这样就获取到了前面的字符串。
就可以随意的字符串拼写了。
a = c + \'11111\';   //这样a就变成了 abababababa11111
参考技术A js里面的replace是替换掉第一个匹配的。后面的不会作出处理,例如。你字符串里面有两个,14-1,用replace替换掉的是第一个,14-1,第二个不会发生变化,如果你要替换掉最后匹配的字符串,需要根据匹配的字符串和匹配规则来判断怎么写代码,例如如果字符串是32adffdfdfddfesdf你要替换最后的df,就可以写出代码,如果字符串是xx,\\\ffeaddfe"'dq""d你要替换后面的""d写出的代码又不一样追问

那我那种形式的该怎么写呢?或者不用replace,只要能把最后一个",14-1"给去掉就行,求教了,谢谢!

追答

把最后的,14-1替换为空就是把原字符串的最后的,14-1截取不要,还是换为空格

本回答被提问者采纳

php如何去除最后一个匹配字符

第一种,直接使用strrpos,substr实现
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$str="hello,how are you!";//要处理的字符串
$lastchar="o";//最后一个字符
$pos=strrpos($str,$lastchar);//确定最后一个字符的位置
$str=substr($str,0,$pos).substr($str,$pos+strlen($lastchar));//截取并合并字符串
echo $str;
?>
第二种,使用explode,将匹配的字符作为分隔符,分隔成数组,之后重新合并数组,过滤掉匹配的最后一个字符即可。
代码如下:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?php
$str="hello,how are you!";
$lastchar="o";
$ary=explode($lastchar,$str);
for($i=0;$i<count($ary);$i++)

if($i<(count($ary)-2))

$res.=$ary[$i].$lastchar;

else

$res.=$ary[$i];


echo "<div>最终结果:".$res."</div>";
?>
希望对你有帮助。
参考技术A substr($arr_str, 0, -1),

rtrim($arr_str, ",")

<?php
$hello="a|b|c|";
$hello=preg_replace("@|$@","",$hello);
echo $hello."<br>";
$str="abcd";
preg_match_all("@$hello@",$str,$result);
print_r($result);
?>
希望可以采纳,谢谢。

以上是关于js中如何替换掉最后一个匹配的字符串?的主要内容,如果未能解决你的问题,请参考以下文章

linux下如何将第一行中指定的字符全部替换掉

在js中,如何替换一个文本中的多个字符?

js如何去掉某个字符串最后几位

js 字符串获取最后一个元素

js 中如何替换字符串?

js replace 匹配转换字符大小写