将C#正则表达式转换为JavaScript正则表达式 - javascript

我已经在模型验证中使用的C#中创建了一个正则表达式。我也需要JavaScript。请帮我转换。

这是C#中的正则表达式

[Required]
[Display(Name = "Cost")]
[DataType(DataType.Currency)]
[RegularExpression(@"^(([a-zA-Z]+)|(\d{0,15}.\d{0,2}))$", ErrorMessage = "Cost can not have more than 2 decimal places.")]
[Range(typeof(Decimal), "0.01", "99999999999999.99", ErrorMessage = "{0} must be a decimal/number greater than 0 and less than 100000000000000.")]
public Nullable<decimal> Cost { get; set; }

还有另一条验证消息“字段必须是数字”

我正在javascript中尝试这样

var regExp = new RegExp("(([a-zA-Z]+)|(\d{0,15}.\d{0,2}))");
var res = regExp.test($('#Cost').val());

但这总是返回true

谢谢

参考方案

如果您要尝试验证费用必须包含2个小数位,请在正则表达式中删除与任何字母字符串匹配的“或”部分:

^(\d{0,15}\.\d{0,2})$

注意:您也不需要括号,因为您在这里不会对捕获的值做任何事情。

您提到的正则表达式也将在C#中失败,但是由于您的Range属性,您会感到它起作用的错觉。

最后,如果您使用的是new Regexp语法,则需要转义斜线:

var re = new RegExp("^\\d{0,15}\\.\\d{0,2}$");

// or using shorter JS syntax
var re = /^\d{0,15}\.\d{0,2}$/;

样品运行:

console.log(re.test("abc"));  // false
console.log(re.test("10.23"));  // true
console.log(re.test("10"));  // false

Mongo汇总 - javascript

我的收藏中有以下文件{ "_id": ObjectId("54490b8104f7142f22ecc97f"), "title": "Sample1", "slug": "samplenews", "cat": …

JavaScript中的字符串评估函数 - javascript

            JavaScript中是否有任何内置函数,例如Python中的eval内置函数?注意:eval函数将方程式作为字符串并返回结果。例如,假设变量x为2,则eval("2x+5")返回9。 参考方案 是的,JavaScript中也有eval函数。此外,该声明应有效用于评估,即eval("2*x+5"…

如何在JQuery中操作JSONArray - javascript

我有一个php函数,它以JSON返回此代码{"0":{"title":"Dans l\u2019appartement"},"1":{"title":"A l\u2019a\u00e9roport - D\u00e9part de B\u00e9at…

获取JavaScript值到C#字符串 - javascript

                        是否可以在C#中执行类似的操作?该值为“ 10/05/2014”string jsValue = javascript("$('#EstimatedStartDate').val()"); 参考方案 您能否更详细地阐明您要做什么。看来您正在尝试从javascript(客户…

和字符中断通过PHP接收JSON - javascript

我有一个包含更多对象的数组。如果一个对象包含&字符,则php不会接收&之后的每个对象。可能是什么问题?这就是阿贾克斯xmlhttp.open("POST", "get.php"); xmlhttp.setRequestHeader("Content-Type", "application/…