[英]removing a comma or semicolon from the end of a string if present -using javascript
我得到一个逗号分隔或分号分隔字符串。 我想删除字符串末尾可能出现的逗号或分号。
ega,b,c应转换为a,b,c
A; B; C; 应转换为a; b; c
我想要一个javascript或regex表达式,只有在它出现时才删除逗号( , )或半冒号( ; ),否则字符串应保持不变。
请帮忙
这可以通过正则表达式MDN DOC和.replace()
MDN DOC简单地解决:
your_string = your_string.replace(/[,;]$/,'');
这是一个jsfiddle,你可以运行来演示代码: http : //jsfiddle.net/5eksE/1/
/[,;]$/
是此脚本的正则表达式部分。 斜杠可以忽略,因为它们只是正则表达式分隔符。
[]
是您希望在这种情况下匹配的一系列值的容器,;
。
$
表示字符串的结尾。
所以把它们放在一起我们正在寻找一个字符串末尾的逗号或分号。
正则表达式处理逗号和分号
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);
虽然不是那么优雅。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.