输入掩码是一种用于格式化用户输入的技术,确保输入的数据符合特定的格式要求。在前端开发中,输入掩码常用于表单控件,如电话号码、日期、货币等。
以下是一个简单的JavaScript示例,展示如何为输入框添加电话号码格式的输入掩码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Input Mask Example</title>
<script>
function applyMask(input) {
let mask = "(999) 999-9999";
let output = "";
let inputStr = input.value.replace(/\D/g, '');
let maskIndex = 0;
for (let i = 0; i < inputStr.length; i++) {
if (mask[maskIndex] !== '9') {
output += mask[maskIndex];
maskIndex++;
} else {
output += inputStr[i];
}
}
input.value = output;
}
</script>
</head>
<body>
<input type="text" id="phone" oninput="applyMask(this)">
</body>
</html>
在这个示例中,我们定义了一个applyMask
函数,该函数会在用户输入时实时应用电话号码格式的掩码。
在后端,通常不需要直接应用输入掩码,但需要验证前端传递的数据是否符合预期的格式。以下是一个使用Node.js和Express的示例:
const express = require('express');
const app = express();
app.use(express.json());
app.post('/submit', (req, res) => {
const phoneNumber = req.body.phone;
const phoneRegex = /^\(\d{3}\) \d{3}-\d{4}$/;
if (!phoneRegex.test(phoneNumber)) {
return res.status(400).send('Invalid phone number format');
}
// 处理有效的数据
res.send('Phone number is valid');
});
app.listen(3000, () => {
console.log('Server is running on port 3000');
});
在这个示例中,我们使用正则表达式来验证前端传递的电话号码是否符合(XXX) XXX-XXXX
的格式。
通过以上方法,你可以在前端和后端有效地应用和处理输入掩码,确保数据的格式正确性和一致性。
领取专属 10元无门槛券
手把手带您无忧上云