嗨我需要一个正则表达式,它只接受0-9中的数字,但不应包含所有零,不应包含特殊字符,不应该以零开头且长度为9位。
我尝试了这个,但它最终接受了特殊字符。 ^ [1-9] [0-9] {8}
请帮帮我。 提前谢谢。
答案 0 :(得分:2)
你试过吗
var express = require('express');
var MongoClient = require('mongodb').MongoClient;
var assert = require('assert');
var app = express();
var server = require('http').createServer(app);
var userName;
var userAge;
var user;
var url = "mongodb://localhost:27017/myAppDB";
var multer = require('multer');
var upload = multer();
app.set("view engine", "ejs");
app.use(express.static(__dirname + '/public'));
app.use(session({
secret: "schhh",
cookie: {maxAge: 86400000},
}));
server.listen(3000, function () {
console.log('Server listens on port 3000');
});
//method for console.logging the whole collection
var findUser = function(db, callback) {
var entry = db.collection('user').find( );
entry.each(function(err, doc) {
assert.equal(null, err);
if (doc != null) {
console.log(doc);
} else {
callback();
console.log("Exit DB");
}
});
};
//first connection to mongo
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
if(err) {
return console.log(err);
} else {
console.log("Connected to DB");
}
var collection = db.collection('user');
var user1 = {username: 'Max Mustermann',
position:'Student',
eMail:'max@mustermann.de'};
var user2 = {username: 'Ute Mustermann',
position:'Student',
eMail:'max@mustermann.de'};
var alleUser = [user1, user2];
collection.insert(alleUser);
findUser(db, function() {
db.close();
});
});
app.get('/', function (req, res, next) {
res.render('index.ejs');
var visit = JSON.stringify(req.session);
req.session.last_visit = Date.now();
console.log(„Last visit: " + visit);
});
app.post('/', upload.array(), function (req, res, next) {
var newUser = {
username: req.body.vorname,
position: req.body.pos,
eMail: req.body.mail
};
MongoClient.connect(url, function(err, db) {
assert.equal(null, err);
db.collection('user').insert(newUser, function(err, doc){ //Assert returns true here
assert(null, err);
});
});
});
不确定为什么你会在最后看到特殊字符,除非它在9位之后。 ^[1-9]\d{8}$
将解决这个问题。
此外,我更喜欢在适用时使用字符类($
用于任何数字)。我认为它使得正则表达式非常复杂,比组更容易阅读。
答案 1 :(得分:2)
在结尾Out[34]:
name age
0 John 28
1 John 18
2 Mike 18
$
答案 2 :(得分:0)
尝试此更改
^ [1-9] \ d {8}
我希望它有效