JQuery在文本框中只允许字母、数字和正斜杠
JQuery to allow only alphabets, numeric and forward slash in TextBox
我在ASP中有一个文本字段。. NET和我想只允许字母数字和正斜杠(/)键。我尝试了以下代码
function jsCheckInput(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key != null) {
key = parseInt(key, 10);
if (key < 47 || (key > 57 && key < 65) || (key > 90 && key < 97) || key > 122) {
if (!jsIsUserFriendlyChar(key)) {
return false;
}
}
else {
if (evt.shiftKey) {
return true;
}
}
}
return true;
}
function jsIsUserFriendlyChar(val) {
// Backspace, Tab, Enter, Insert, and Delete
if (val == 8 || val == 9 || val == 13 || val == 45 || val == 46) {
return true;
}
// Ctrl, Alt, CapsLock, Home, End, and Arrows
if ((val > 16 && val < 21) || (val > 34 && val < 41)) {
return true;
}
return false;
}
在web表单页面中,我添加了如下内容
<asp:TextBox ID="text_value" CssClass="textbox" onkeydown="return jsCheckInput(event);" runat="server"></asp:TextBox>
在这里我可以输入字母和数字,但我不能输入值/
。我已经启用了shift键,所以我可以给shift + ?
输入正斜杠。另一个问题是,当我按shift +任何数字键时,像! @ # $ % ^ & * ( ) ...
这样的特殊字符也会出现在tet字段中。我哪里做错了?
如果你想使用正则表达式。
const regex = /^[a-z0-9'/]+$/gi;
const str = `asdasdas/asdfaASDASDA`; //test string
if(regex.test(str )){
console.log('Allowed'+str);
}
这里的测试
键入正斜杠不需要shift键。正斜杠(/)的关键代码为191。在if条件中也加上这个。
function jsCheckInput(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key != null) {
key = parseInt(key, 10);
if (key < 47 || (key > 57 && key < 65) || (key > 90 && key < 97) || key > 122 || key != 191) {
if (!jsIsUserFriendlyChar(key)) {
return false;
}
}
}
return true;
}
SOLUTION
最后找到了如下的解决方案,
function jsCheckInput(e, t) {
try {
if (window.event) {
var charCode = window.event.keyCode;
}
else if (e) {
var charCode = e.which;
}
else { return true; }
if ((charCode > 64 && charCode < 91) || (charCode > 96 && charCode < 123) || (charCode > 46 && charCode < 58))
return true;
else if (jsIsUserFriendlyChar(charCode))
return true;
else
return false;
}
catch (err) {
alert(err.Description);
}
}
这段代码工作完美!!
相关文章:
- 分开的数字和字母
- jQuery只允许使用数字、字母和连字符
- 如何允许用户只输入数字和字母
- 正则表达式,只允许5位数字或字母字符后跟5位数字
- 如何用Javascript生成一串数字和字母
- 数字、字母块的正则表达式模式匹配
- 文本框接受字符和数字或字母,但不能只接受数字
- Javascript 简单检查网络表单,以确保它包含数字和字母(而不是我的代码)
- 非空,数字和字母的JavaScript验证
- 在同时包含数字和字母的字符串中拆分数字和字母
- 如何使用Javascript将十三位数字缩短(编码)为数字、字母和标点符号的短字符串
- 数字和字母生成器
- 拆分数字和字母的JavaScript正则表达式
- 我们如何写一个最优函数来得到给定数字的字母顺序?
- 有没有任何字符串方法,能让我把一串数字,转换成一串数字和字母
- Javascript,按数字或字母排序列
- Regex用于在8个字符的字符串中搜索连续的两个数字和字母
- JS字符串:在数字和字母之间添加空白
- javascript regex支持UTF8字符与数字和字母
- 使用可选数字和字母数字进行JavaScript验证