OK、こことGoogleの両方で高低を検索した後、私は弾丸を噛み、IE8の正規表現に関してここで新しい質問をする必要があります。
私は次のコードを持っています:
var output = input.replace(/^\S+(\s| )+/, '');
その目的は金額から通貨名を削除することであるため、「kr12345,00」は「12345,00」になり、「NOK12345,00」は「12345,00」になります。
これは、入力が変更されないままになるInternetExplorerバージョン8以下を除いてすべての場所で正常に機能します。
最初はそのnew RegExp()
方法を使用していましたが、正規表現リテラルに変更して、IEがこれら2つのバリエーションを処理する方法に違いがあるかどうかを確認しました-ありがたいことに、ありませんでした:)
私もとだけで試しまし\s
た
が、それは違いはありませんでした。
本当に奇妙なことは、 IE8のW3Schoolの「TryItYourself」ページの入力として「kr12345,00」を使用して上記の正規表現を実行すると、正常に機能することです。(最初のスペースが)に置き換えられた場合も
)
繰り返しになりますが、この問題が発生しているのは、Javascriptコードで正規表現を使用している場合です。これはAngularJSフィルター関数(フィルターを定義しています)にあり、フィルターはIE8で元の入力を返します( IE8のconsole.log()でも見られます)。他の誰かが私のためにIE9でそれをテストし、そこでうまく機能したと報告しました-そして私はChromeでもテストしました。私がこの問題に遭遇した唯一のブラウザはIE8とIE7です。
ここで一体何が起こっているのでしょうか?