0

段落から整数と小数を取得したい。これにはjQueryと正規表現を使用しています。ここに私のコードがあります:

jQuery("#Content_Text p, #Content_Text td").html(function (index, value) {
        value = value.replace(/(\s[1-9]\d*(\.\d+)?(\s,\.,\,,\%)?)/, "<em style=\"color:#FF6600; font-size:12px; font-style: normal;\">$1</em>");
        return value;
    });

一致する例と一致しない例:

  1. 上位 3<3 is matched>か国としての地位を確立しました
  2. インドは<3 is matched>、2012 年の世界住宅指数で 3 位にランクされています。<2012. is not matched>
  3. *Economy and Realty、2012 年 10 月、ナイト フランク。<2012. is matched>
  4. インドは年率 18.6% ~ 29% の範囲にある<18.6 is matched> but 29% is not!

私を助けてください、私はこれらすべてのケースに一致させたいです!.

前もって感謝します

4

2 に答える 2

2

代わりにクラス文字を使用する必要があると思います(\s,\.,\,,\%)

[\s.,%]
于 2013-06-11T13:59:34.713 に答える
1

正規表現で /g フラグを使用して、最初の出現以上のものと一致させます。また、正規表現のこの部分は少し奇妙です:

(\s,\.,\,,\%)?

私はあなたが実際にそれを必要としないと思う. とにかくオプションにしたので、問題にはなりません。また、最初に冗長な数字の一致があります。これを試して:

value.replace(/\s(\d+(\.\d+)?)/g, "<em style=\"color:#FF6600; font-size:12px; font-style: normal;\">$1</em>")

数字の前に空白スペース \s が必要であることに注意してください。それは文頭では一致しません。必要に応じて、単語境界 \b に置き換えてみてください。

于 2013-06-11T14:55:49.770 に答える