簡體   English   中英

從服務器端到客戶端的密碼確認(表單驗證)

[英]Password confirmation(form validation) from server-side to client side

我有Express.js服務器。 在node.js中運行。 使用javascript服務器端語言。 那里我有注冊sipmle表格,注冊新用戶並將用戶保存在mongoDb中。 POST方法。

<form action="/new" method="POST">Name:
  <input type="text" name="name" class="name"/><br/>Phone number:
  <input type="text" name="phone" class="phone"/><br/>email:
  <input type="email" name="email" class="email"/><br/>Password:
  <input type="password" id="p1" name="pass" class="pass"/><br/>Confirm password:
  <input type="password" id="p2" name="confirm" class="confirm"/><br/>
  <input type="submit" value="Submit" onclick="return validateForm()"/>
</form>

需要創建輸入驗證(實際上是“密碼確認”和“電子郵件”),還需要使用“ regex”。 我如何實現這種方法?我在客戶端創建了輸入數據驗證。它的工作原理。也許我只需要將此代碼放在服務器中即可? 在google中搜索不會給我期望的結果...我看到了許多驗證方法validateator.js,但沒有找到詳細的代碼...謝謝您的幫助:)

<script>
function validateForm (event) {
var p1 = document.getElementById('p1');
var p2 = document.getElementById('p2');
if (p1.value !== p2.value) {
alert('Password check!');
return false;
}
// check email
var email = document.getElementById('email');
// regex
var email_regexp = /[0-9a-zа-я_A-ZА-Я]+@[0-9a-zа-я_A-ZА-Я^.]+\.[a-zа-яА-ЯA-Z]{2,4}/i;
if (!email_regexp.test(email.value)) {
alert('Check email');
return false;
}
}
</script>

這也是我的注冊服務器端代碼:

 app.use(bodyParser());

mongoose.connect('mongodb://localhost/test');

var Schema = new mongoose.Schema({
  name    : String,
  phone: String,
  email : String,
  pass : String,
  confirm : String
});

var user = mongoose.model('emp', Schema);

app.post('/new', function(req, res){

  new user({
    name : req.body.name,
    phone: req.body.phone,
    email: req.body.email,
    pass: req.body.pass,
    confirm: req.body.confirm   
  }).save(function(err, doc){
    console.log(user); 
    if(err) res.json(err);
    else    res.send('Successfully inserted!');

  });
});

為了驗證電子郵件,您應該使用-

req.checkBody('email').isEmail();

為了驗證密碼和確認密碼,您應該使用-

req.assert('confirm', 'Password and Confirm Password should be same.').equals(req.body.pass);
var mappedErrors = req.validationErrors(true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM