正则表达式匹配特定的字符串和数字值

时间:2016-09-21 14:53:03

标签: regex validation

我正在尝试创建一个正则表达式,它只允许特定的字符串(Test1)或数值。我该怎么做?我尝试了以下但它不起作用,不会注意到字符串部分。这个正则表达式我做错了什么?

^Test1[0-9]*$

我想在MVC模型验证属性中使用它:

  [RegularExpression("^Test1[0-9]*$", ErrorMessage = "The value must be numeric or be Test1.")]

2 个答案:

答案 0 :(得分:2)

您的模式 - if (passport.isAuthenticated) { Order.findOne({ _id: req.body.id}) .select('-_id productOrder') .exec(function (err, orderObj) { if(!err) { var productOrder = orderObj.productOrder; res.render('store/cart', { title: 'MyCart', angularApp: 'storeApp', products: productOrder }); } }); } else { res.redirect('/login'); } - 将整个字符串与以下内容匹配:^Test1[0-9]*$后跟0位或更多位数。

如果您要将Test1或零个或多个数字作为整个字符串进行匹配,则需要

Test1

详细

  • ^(Test1|[0-9]*)$ - 字符串开头
  • ^ - grouping construct开始:
  • [0-9]* - 将构造结束分组(强制)^锚点应用于上述每个替代方案)
  • $ - 字符串结束。

答案 1 :(得分:1)

  • |Test1之间的[0-9]*运算符怎么样?
  • 如何用*替换+ - 由于空字符串不会被捕获?

正则表达式^Test1|[0-9]+$应匹配所有 Test1 123 0 12345 等等

就MVC而言 - 它与正则表达式无关。