正则表达式只接受9位数字,没有特殊字符,不是全部为零,不应该以零开头

时间:2016-06-30 14:09:24

标签: regex

嗨我需要一个正则表达式,它只接受0-9中的数字,但不应包含所有零,不应包含特殊字符,不应该以零开头且长度为9位。

我尝试了这个,但它最终接受了特殊字符。 ^ [1-9] [0-9] {8}

请帮帮我。 提前谢谢。

3 个答案:

答案 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}

我希望它有效