我的字符串是“最后更新时间为 11 月 7 日晚上 8 点 AST”。使用正则表达式我想从它的末尾删除“AST”。我该怎么做呢?
问问题
5022 次
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 回答