从模式的末尾剥离特定字符串的结尾

时间:2013-11-08 02:40:46

标签: javascript regex

我的字符串是“最后更新于11月7日,晚上8点AST”。 使用正则表达式我想从它的末尾删除“AST”。我该怎么做?

4 个答案:

答案 0 :(得分:4)

使用正则表达式,您可以这样做:

var string = "Last Updated on November 7, 8:00 PM AST";
var modified = string.replace(/ \w{3}$/, '');

但是,如果它总是将成为字符串中的最后三个字符(和空格),那么这可能会更快:

var modified = string.substring(0, string.length - 4);

答案 1 :(得分:3)

不需要正则表达式,只需将子字符串放到空格字符的最后一个索引处。

var s = "Last Updated on November 7, 8:00 PM AST";
s.substr(0, s.lastIndexOf(" ")) // "Last Updated on November 7, 8:00 PM"

答案 2 :(得分:2)

要使用正则表达式专门删除“AST”,您可以这样做:

var lastupdated="Last Updated on November 7, 8:00 PM AST";
var changed = lastupdated.replace(/AST$/,"");

要使用正则表达式删除“AST”之前的空格,请执行以下操作:

var lastupdated="Last Updated on November 7, 8:00 PM AST";
var changed = lastupdated.replace(/ AST$/,"");

但是,如果你想要一个更通用的解决方案,这将删除字符串的最后4个字符,假设它们是前面有空格的3个字母:

var lastupdated="Last Updated on November 7, 8:00 PM AST";
var changed = lastupdated.replace(/ \w{3}$/,"");

但是,正如其他人所说,你并不需要正则表达式来做这件事,因此可以简单地使用这些通用方法中的任何一种:

var lastupdated="Last Updated on November 7, 8:00 PM AST";
lastupdated.slice(0, -4); \\trims final 4 characters off of the end of the string
lastupdated.substr(0, s.lastIndexOf(" ")); \\prints the string up until the final space character
lastupdated.substring(0, string.length-4); \\prints all but the final 4 characters of the string

所有这些方法都会产生字符串"Last Updated on November 7, 8:00 PM"

答案 3 :(得分:1)

您可能不需要使用正则表达式:

var s = "Last Updated on November 7, 8:00 PM AST".slice(0, -4);

然而正则表达式:

var s = "Last Updated on November 7, 8:00 PM AST".replace(/.{4}$/, '');

如果您确定AST由于重新格式化而只能在最后,您也可以执行以下替换:

yourString.replace(' AST', '');
相关问题