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

时间:2012-01-20 12:39:36

标签: javascript regex

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

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

a; b; c;应转换为a; b; c

我想要一个javascript或regex表达式,只有在它出现时才会删除逗号()或半冒号(; ),否则字符串应该保留为是

请帮助

5 个答案:

答案 0 :(得分:17)

解决方案

只需使用regex MDN DOCs.replace() MDN DOCs

即可解决此问题
your_string = your_string.replace(/[,;]$/,'');

这是一个jsfiddle,你可以运行来演示代码:http://jsfiddle.net/5eksE/1/

发生了什么

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

[]是您希望在这种情况下匹配的一系列值的容器,;

$表示字符串的结尾。

所以把它们放在一起我们正在寻找一个字符串末尾的逗号或分号。

答案 1 :(得分:4)

正则表达式处理逗号和分号

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

答案 2 :(得分:3)

您可以使用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;

答案 3 :(得分:1)

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

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

答案 4 :(得分:0)

我通常做

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

虽然我确保它在我之前的循环中存在。抱歉错过了你问题的第二部分。你可以放入一个ternery

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

虽然不是那么优雅。