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 年全球住房指数中排名第三。<2012. is not matched>
  3. *经济与房地产,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 回答