如何确定为`Int,VarChar,Date,Time..`输入的模式等
how to determine entered pattern is for `Int,VarChar,Date,Time...` etc
我有一个下拉列表,其中包含DataType
以及一个文本框,这是用于输入CCD_ 2的
如果我在文本框中输入/test/
或从下拉菜单Int
中选择如果在文本框/[0-9]/
中输入,则其模式错误则其CCD_ 6
这是我的小提琴链接
http://jsfiddle.net/VGF9B/2/
这是我的script
var dropdownValue = 'selectValue';
$('select').change(function(){
dropdownValue = $(this).val();
});
$('#pattern').focusout(function(){
alert(dropdownValue);
var pattern = new RegExp($('#pattern').val());
alert(pattern);
});
它怎么可能
var intRx=/^'d*$/; //22
var varCharRx=/^'w*$/; //abc
var dateRx=/^'d{2}-'d{2}-'d{4}$/; //01-01-2011
var time=/^'d{2}:'d{2}$/; //12:00
str=$(this).val();
if(intRx.test(str))
alert("int");
else if(varCharRx.test(str))
alert("varchar");
else if(dateRx.test(str))
alert("date");
else if(time.test(str))
alert("time");
记住,这是EXACT模式的数学运算,如果你想要一些其他异常,你必须在正则表达式中添加它!它不用于验证
http://jsfiddle.net/VGF9B/4/
我能想到的是使用示例,即应该匹配正则表达式的典型输入:
var examples = {
"Date": [
"2010-01-01", "10-01-01", "2010-1-1", "10-1-1", "01-01-2010", "01-01-10", "1-1-2010", "1-1-10",
"2010/01/01", "10/01/01", "2010/1/1", "10/1/1", "01/01/2010", "01/01/10", "1/1/2010", "1/1/10"
],
"Int": [
"0", "0123456789"
],
"VarChar": [
"a", "abcdefghijklmnopqrstuvwxyz", "A", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
]
};
然后,如果输入的regex与某个特定类型的示例匹配,则可以使其有效:
$("#pattern").blur(function() {
var pattern = this.value;
var regex = new RegExp(pattern);
var type = $("select").val();
var validPattern = false;
if (type in examples) {
for (var i = 0; i < examples[type].length, i++) {
var example = examples[i];
if (regex.test(example)) {
validPattern = true;
break;
}
}
} else {
alert("No examples found for type '" + type + "'");
}
if (validPattern) {
alert("Valid pattern");
} else {
alert("Invalid pattern");
}
});
主要问题是它不会涵盖复杂/特殊的正则表达式。例如,带有/^5/
的Int
在给定的示例中无效,因为没有以5
开头的Int
示例。VarChar
和/bca/
都无效。但是,如果你能为每种类型提供足够的示例,这可以满足你的需求:)
你可以在这里看到一个例子。
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 单击jquery清除输入值
- 而循环只设置php中输入字段中的第一个值
- 在输入字段中将最小金额设置为
- jQuery自定义验证比较多个输入的序列
- Sails.js:同时发布文本输入和一个文件
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 如何在输入字段中的按钮的帮助下打开日历,该字段的类型为“=”;日期”;
- 如何在禁用的输入类型=“time”元素上居中显示数字
- 如何确定为`Int,VarChar,Date,Time..`输入的模式等
- 从<输入类型= " time "…>验证时间
- 输入时间[type= time]设置值
- 输入“IN TIME”和“OUT TIME”,格式为HH:MM