使用javascript从字符串末尾删除逗号或分号(如果存在)

removing a comma or semicolon from the end of a string if present -using javascript

本文关键字:如果 存在 javascript 字符串 删除 使用      更新时间:2023-09-26

我得到一个逗号分隔或分号分隔的字符串。我想删除可能出现在字符串末尾的逗号或分号。

例如,a、b、c应转换为a、b和c

a;bc应转换为a;bc

我想要一个javascript或regex表达式,它删除逗号()或分号(;

请帮助

解决方案

这可以简单地用regexMDN DOCs.replace()来解决:

your_string = your_string.replace(/[,;]$/,'');

这里有一个jsfiddle,您可以运行它来演示代码:http://jsfiddle.net/5eksE/1/

发生了什么

/[,;]$/是该脚本的正则表达式部分。斜杠可以忽略,因为它们只是正则表达式分隔符。

[]是您希望在本例中匹配的值范围,;的容器。

$表示字符串的末尾。

因此,把所有这些放在一起,我们正在寻找字符串末尾的逗号或分号。

Regex处理逗号和分号

your_string = your_string.replace(/[,;]$/, "");

您可以使用indexOf()lastIndexOf()检查字符串中字符的位置。在您的情况下,当lastIndexOf()返回一个等于字符串长度减1的索引时,则该索引用于字符串中的最后一个字符:

var index = input.lastIndexOf(";");
if(index == input.length - 1) 
{
  input = input.substring(0, input.length - 1);
}

或者,作为一句话:

input = input.lastIndexOf(";") == input.length - 1 ?  input.substring(0, input.length -1 ) : input;

treffynnon的答案是正确的。更详细地说,它只是检查字符串是否与正则表达式,$匹配(其中$表示字符串的末尾),如果匹配,则用空字符串替换逗号。如果你想检查逗号或分号,你只需要将其更改为

your_string = your_string.replace(/[,;]$/,'');

我通常进行

value = value.substring(0, value.length-1)

尽管我确保它在我之前的循环中。抱歉错过了你问题的第二部分。你可以放一个燕窝

value = value.substring(0, (value[value.length-1] == ',') ? value.length -1 : value.length);

尽管它没有那么优雅。