Javascript 单个函数中的正则表达式
我做了一些正则表达式验证,下面是我做的 Javascript:Javascript 单个函数中的正则表达式,javascript,html,Javascript,Html,我做了一些正则表达式验证,下面是我做的 Javascript: function fn1() { var var1=/^(\s*|\d+)$/ if (document.myform.inp1.value.search(var1)==-1) { alert("validation for digits failed") } } function fn2() { var var2=/^(?:\d+(?:,\d+)*(?:\.\d{2})?|\d+(?:\.\d{3})*(?:,\d{2})?)
function fn1() {
var var1=/^(\s*|\d+)$/
if (document.myform.inp1.value.search(var1)==-1) {
alert("validation for digits failed")
}
}
function fn2() {
var var2=/^(?:\d+(?:,\d+)*(?:\.\d{2})?|\d+(?:\.\d{3})*(?:,\d{2})?)$/
if (document.myform.inp2.value.search(var2)==-1) {
alert("validation for currency failed")
}
}
function fn3() {
var var3=/^(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d$/
if (document.myform.inp3.value.search(var3)==-1) {
alert("validation for date failed")
}
}
</script>
函数fn1(){
var var1=/^(\s*|\d+)$/
if(document.myform.inp1.value.search(var1)=-1){
警报(“数字验证失败”)
}
}
函数fn2(){
var var2=/^(?::(?:,\d+)*(?:\。\d{2})?\d+(?:\。\d{3})*(?:,\d{2})$/
if(document.myform.inp2.value.search(var2)=-1){
警报(“货币验证失败”)
}
}
函数fn3(){
var var3=/^(0[1-9]|[12][0-9]|[3[01])[-/.](0[1-9]| 1[012])[-/.](19 | 20)\d\d$/
if(document.myform.inp3.value.search(var3)=-1){
警报(“日期验证失败”)
}
}
下面是我的HTML
<form name="myform">
<div id="div1">
<input type="text" name="inp1" />
<input type="button" onClick="fn1()" value="chk1"/>
</div>
<div id="div2">
<input type="text" name="inp2" />
<input type="button" onClick="fn2()" value="chk2" />
</div>
<div id="div3">
<input type="text" name="inp3" />
<input type="button" onClick="fn3()" value="chk3" />
</div>
</form>
现在我需要将所有这些合并到一个函数中,该函数应该接受正则表达式作为参数。因此,应该有一个JavaScript函数接受三个参数(,
)。请帮助我们如何做到这一点
function expression(selector, regex, error) {
if (selector.value.search(regex)==-1) {
alert(error);
}
}
选择器
必须与document.myform.inp1
类似,您可以这样做
function checkItem(elem, regex, errMsg) {
if (elem.value.search(regex) == -1) {
alert(errMsg);
}
}
例如:
checkItem(document.myform.inp1, /^(\s*|\d+)$/, "validation for digits failed");
首先将验证函数放入对象中:
var validationFunctions = {
digits: function (val) {
... fn1 here ...
},
currency: function (val) {
... fn2 here ...
},
date: function (val) {
... fn3 here ...
}
};
然后,您的泛型函数将如下所示:
var validate = function (elementID, type) {
var value = document.getElementById(elementID).value;
return validationFunctions[type](value);
};
validate('inputBoxID', 'digits');
validate('inputBoxID', 'currency');
validate('inputBoxID', 'date');
你可以这样称呼它:
var validate = function (elementID, type) {
var value = document.getElementById(elementID).value;
return validationFunctions[type](value);
};
validate('inputBoxID', 'digits');
validate('inputBoxID', 'currency');
validate('inputBoxID', 'date');