我有一个字符串,可以包含几个不同的值,其中包括。
为清晰起见,已编辑: var test可能等于FW21002-185或FW21002-181-0001或abcdefg或245-453-654或FW21002-181-00012
我想删除之后的所有字符,包括最后一个字符 - 只有当该字符串在最后一个短划线后包含四个字符时才会删除。因此,在上面的字符串示例中,唯一应该更改的是第二个“FW21002-181”。所有其他的将保持不变。
我将如何在JavaScript中执行此操作。正则表达式也可以。感谢。
答案 0 :(得分:3)
执行此操作的正则表达式将是
var chopped = test.replace(/-[^-]{4,}$/, '-');
(假设你最后想要“ - ”)。 (哦,这也是为了匹配4个或更多尾随字符 - 如果你只想要四个,只需删除{4,}
中的逗号。)
答案 1 :(得分:2)
不需要正则表达式:
var str = ...,
pos = str.lastIndexOf('-');
if (pos > -1 && pos == str.length - 5)
str = str.substring(0, pos);
答案 2 :(得分:1)
如果您不想使用正则表达式:
function removeLongSuffix(var str)
{
var tokens = str.split('-'),
last = tokens[tokens.length-1];
if (last.length > 3)
{
return tokens.slice(0,-1).join('-');
}
return str;
}