javascript - 如何仅在 vuejs 中使用带有字符和数字的文本框?
问题描述
methods: {
isEmail(e) {
let char = String.fromCharCode(e.keyCode); // Get the character
if(/^[A-Za-z]+$/.test(char)) return true; // Match with regex
else e.preventDefault(); // If not match, don't add to input text
},
<input type="email" v-model.trim="$v.email.$model" :class="{'is-invalid': validationStatus($v.email)}" class="input-section" placeholder="Enter your company email ID" :maxlength="maxemail" v-on:keypress="isEmail($event)">
<div v-if="!$v.email.required" class="invalid-feedback">The email field is required.
</div>
<div v-if="!$v.email.maxLength" class="invalid-feedback">30 characters {{
$v.email.$params.maxLength.min }} only</div>
我的问题是,目前上面的文本框只接受字符(A 到 Z 和 z 到 A)。但是,我需要它接受字母数字字符(即 A 到 Z、a 到 z、0 到 9 以及 *、&、@ 等特殊字符)。如何更改上面的代码来完成此操作?
解决方案
您可能知道也可能不知道,/^[A-Za-z]+$/
它是一个正则表达式,目前仅限于允许值 A 到 Z 和 a 到 z。
如果我要纯粹回答您的问题,那就是将缺少的字符添加到您现有的正则表达式中。例如/^[A-Za-z0-9*&@]+$/
请注意,您可以使用在线工具来测试和验证您的正则表达式。
例如:https ://regex101.com/r/uE4GfO/2
但是,目前它仅验证每个字符的字符,而一次验证整个字符串会更有效(并且很可能更正确)。
此外,您似乎正在尝试验证电子邮件地址。您应该考虑使用此处讨论的正则表达式:请参阅如何在 JavaScript 中验证电子邮件地址
推荐阅读
- in-app-billing - BillingClient.launchBillingFlow() 仅在一台设备上返回“您请求的项目不可购买”,所有 Google 帐户
- reactjs - docker环境中react和spring boot之间的连接被拒绝错误
- java - 无法打开文件:E:\glassfish-5.1.0\glassfish5\glassfish\domains\domain1/config/keystore.jks [密钥库被篡改,或密码错误]
- git - 主标签在 Visual Studio 2019 中的 Git 历史上意味着什么?
- javascript - 无论如何要屏蔽输入字段吗?
- wordpress - 使用 htaccess 将 URL 重定向到新域
- python-3.x - 逻辑回归模型的 AUC 等于 1
- php - 有没有更好的方法来循环遍历 php 中的二维数组行
- ios - 当收到 IOS 13 SDK 的通知时,什么是推送工具包的替代方法来处理终止状态
- angular - Angular 7 应用程序性能下降