4

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

4

4 回答 4

5

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

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);
于 2013-11-08T02:44:23.167 回答
4

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

var s = "Last Updated on November 7, 8:00 PM AST";
s.substr(0, s.lastIndexOf(" ")) // "Last Updated on November 7, 8:00 PM"
于 2013-11-08T02:45:54.950 回答
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"

于 2013-11-08T02:46:47.930 回答
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', '');
于 2013-11-08T02:46:20.390 回答