我正在尝试创建一个正则表达式,它只允许特定的字符串(Test1)或数值。我该怎么做?我尝试了以下但它不起作用,不会注意到字符串部分。这个正则表达式我做错了什么?
^Test1[0-9]*$
我想在MVC模型验证属性中使用它:
[RegularExpression("^Test1[0-9]*$", ErrorMessage = "The value must be numeric or be Test1.")]
答案 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开始:
(
- Test1
Test1
- 或(这是alternation operator)|
- 零个或多个数字[0-9]*
- 将构造结束分组(强制)
和^
锚点应用于上述每个替代方案)$
- 字符串结束。答案 1 :(得分:1)
|
和Test1
之间的[0-9]*
运算符怎么样?*
替换+
- 由于空字符串不会被捕获?正则表达式^Test1|[0-9]+$
应匹配所有 Test1 , 123 , 0 , 12345 等等
就MVC而言 - 它与正则表达式无关。