繁体   English   中英

C#正则表达式等效于JS正则表达式

[英]c# regular expression equivalent to js regular expression

有人可以告诉我与以下javascript表达式等效的正则表达式吗

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

我在下面的C#代码中尝试了相同的操作,但失败了。

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

该代码基本上是用于验证数字-应该允许20,000,但不允许20.3。 和20 + 3

我认为您需要在两面都消除/以及更改\\. 更具体的东西。 如果需要更多可能的分隔符,只需将其添加到[+,] 您目前只提到+,在你的问题。

更新了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
    }
}

最好使用此正则表达式:

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

在您的代码中像这样使用它:

http://ideone.com/HIgMzp

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM