[英]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*$
在您的代码中像这样使用它:
它将匹配20,000和20 + 3,但不匹配20.3或100.1
Match match = Regex.Match(input, @"^\d*[-+,]?\d*$")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.