1

JavaScriptでは、数字の後に単語が続く正規表現は何でしょうか?数字と単語をキャッチして、計算後に両方を置き換える必要があります。

例の形式での条件は次のとおりです。

123 dollars => Catch the '123' and the 'dollars'.
foo bar 0.2 dollars => 0.2 and dollars
foo bar.5 dollar => 5 and dollar (notice the dot before 5)
foo bar.5.6 dollar => 5.6 and dollar
foo bar.5.6.7 dollar => skip (could be only 0 or 1 dot)
foo bar5 dollar => skip
foo bar 5dollar => 5 and dollar
5dollar => 5 and dollar
foo bar5dollar => skip
  • もちろん、123.555、0.365、5454.1も数字です。
  • 物事を簡単にするために、単語は特定のものです(例えば、ドル|ユーロ|円)。

  • OK..ありがとうございました...これまでに作成した基本的な関数は次のとおりです。

    var text = "foobar15ドル。blabla.."; 変数通貨={ドル:0.795};

    document.write(text.replace(/ \ b((?:\ d +。)?\ d +)*([a-zA-Z] +)/、function(a、b、c){通貨を返す[c] ?b*通貨[c]+'ユーロ':a;}));

4

3 に答える 3

4

これを試して:

/\b(\d*\.?\d+) *([a-zA-Z]+)/

それはまたのようなものと一致し.5 testsます。それが必要ない場合は、次を使用してください。

/\b((?:\d+\.)?\d+) *([a-zA-Z]+)/

そして、「5.5.5ドル」との一致を避けるために:

/(?:[^\d]\.| |^)((?:\d+\.)?\d+) *([a-zA-Z]+)/
于 2012-08-31T19:50:10.860 に答える
1

クイックトライ:

text.match( /\b(\d+\.?\d*)\s*(dollars?)/ );

あなたがドル/ドルとユーロ/ユーロをやりたいなら:

text.match( /\b(\d+\.?\d*)\s*(dollars?|euros?)/ );

また\s、タブを含むすべての空白に一致します。スペースだけが必要な場合は、代わりにスペースを入れてください(他の回答のように):

text.match( /\b(\d+\.?\d*) *(dollars?|euros?)/ );
于 2012-08-31T19:49:27.587 に答える
0
string.replace(/\d+(?=\s*(\w+))/, function(match) {
    return 'your replace';
});
于 2012-08-31T20:10:30.973 に答える