c#正则表达式等同于js正则表达式

时间:2014-04-10 04:52:05

标签: c# regex

有人能告诉我正则表达式等同于以下javascript表达式

var validformat = /^[-+]?\d*\.?\d*$/

我在下面的c#代码中尝试了相同但是失败了。

Regex rgx = new Regex(@"/^[-+]?\d*\.?\d*$/")
bool result = rgx.IsMatch(expression)

代码基本上是为了验证数字 - 它应该允许20,000而不是20.3。和20 + 3

2 个答案:

答案 0 :(得分:1)

我认为你需要摆脱双方的/,以及将\.更改为更具体的内容。如果您需要更多可能的分隔符,只需将它们添加到[+,]中即可。您目前只在提问时提到+,

更新了regex以删除20+3的匹配。

using System.Text.RegularExpressions;
using System;

public class Program{
    public static void Main(string[] args) {
        Regex rgx = new Regex(@"^[-+]?\d*,?\d+$");
        Console.WriteLine(rgx.IsMatch("10000"));  //True
        Console.WriteLine(rgx.IsMatch("20,000")); //True
        Console.WriteLine(rgx.IsMatch("20+100")); // False
        Console.WriteLine(rgx.IsMatch("20000,")); // False
        Console.WriteLine(rgx.IsMatch("20.200")); // False
    }
}

答案 1 :(得分:0)

更好地使用这个正则表达式:

^\d*[-+,]?\d*$

在你的代码中使用它:

http://ideone.com/HIgMzp

它将匹配20,000和20 + 3但不匹配20.3或100.1

Match match = Regex.Match(input, @"^\d*[-+,]?\d*$")