正则表达式 - 所有不在“ - ”,“。”,“/”之后的数字

时间:2016-12-27 14:42:52

标签: javascript regex

我正在使用此正则表达式从字符串中提取所有数字。

([\d,]+(?:\.\d+)?)

我正在尝试更改它,以便在字符“。”之后出现数字。 “ - ”“/”将不会返回。

我试过

[^-.]([\d,]+(?:\.\d+)?) 

^[^-.]+$([\d,]+(?:\.\d+)?)

EDIT2

实施例。 我有这样的文字:

 7
.7
-7
/7
-12 123

12,2

22.22

我希望正则表达式返回组123 12,2和22.22

1 个答案:

答案 0 :(得分:3)

您可以使用

/(?:^|[^-.\/\d])([\d,]+(?:\.\d+)?)/g

第一部分表示"字符串的开头或不是./-的字符(在非捕获的组中)。我在该组中添加了\d,以避免从不应该捕获的数字的第二个数字开始捕获。

演示(及其使用方法):



var results = [],
    regex = /(?:^|[^-.\/\d])([\d,]+(?:\.\d+)?)/g,
    text = document.querySelector("p").innerHTML,
    m;
while (m=regex.exec(text)) {
  results.push(m[1]);
 }
document.querySelector("pre").innerHTML=JSON.stringify(results);

<p>123,456 -12 123 some text. 2258 a.666 36,45 a/123 999 22.22</p>
<pre></pre>
&#13;
&#13;
&#13;