我正在使用具有以下条件的自定义信用卡验证器:
app.get('/process_get', function (req, res) {
// Prepare output in JSON format
response = {
first_name: req.query.first_name
, lastname: req.query.last_name
, password: req.query.password
, mobile: req.query.user_mobile
, address: req.query.user_address
};
query = db.query("insert query", [params]
, (err, result) => {
res.end(JSON.stringify(response));
})
})
。 (0-9)
隔开。 -
,' '
等任何其他分隔符。我找不到满足最后一个条件的正则表达式。
对于其他情况,我有以下正则表达式:
'_'
答案 0 :(得分:0)
对于最后一种情况,您可以使用否定的lookahead来断言其后不是数字,然后是3或3倍以上的可选连字符和数字。
已添加部分(?![-\d]*([0-9])(?:-?\1){3,})
(?!)
负向超前
[-\d]*
匹配数字或连字符零次或多次([0-9])
分组捕获数字(?:-?\1){3,}
在一个非捕获组中重复3次或更多次,一个可选的连字符-?
后跟backreference到在第1组中捕获的数字)
近距离否定预测您的带有正则表达式的正则表达式可以断言行的开头^
和结尾$
,
^(?![-\d]*([0-9])(?:-?\1){3,})[456][0-9]{3}-?[0-9]{4}-?[0-9]{4}-?[0-9]{4}$