4

私が持っている文字列は「Last Updated on November 7, 8:00 PM AST」です。正規表現を使用して、末尾の「AST」を削除したいと思います。どうすればそうすることができますか?

4

4 に答える 4

5

正規表現を使用すると、次のことができます。

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

ただし、常に文字列の最後の 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 に答える