正则替换实现输入框只能有数字、中英文逗号
|
本来很简单的小功能,因为细节折腾了一会,所以一定要细心才行 实现代码也比较简单大家可以参考下 核心代码:
function renumdou(str){
var regexp = /[^d,,]]*/g;
newstr=str.replace(regexp,"");
return newstr
}
编程小技巧小编给大家分享另外一个不错的代码: 自动检测数字替换 数字正则表达式
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>
<BODY>
<input onkeyup='check(this)'/>
</BODY>
<script>
function check(obj){
var sreg = /^-+.*/g;
var zero = /^0[1-9]+.*d*/g;
var val = obj.value;
var plus = '';
if(sreg.test(val)){
val = val.replace(/-+/g,'');
plus = '-';
}
val = val.replace(/s+/g,'');
if(/^.+.*$/.test(val)){
val = '';
}
val = val.replace(/[^d.]/,'');
val = val.replace(/(^d+.{1})(d*).*/g,'$1$2');
val = val.replace(/(^d+.d{3})d*/g,'$1');
val = val.replace(/^[0]*(0{1})([1-9]*)(.*)/g,'$1$2$3');
if(zero.test(val)){
val = val.replace(/0([1-9]+)(.*)$/,'$1$2');
}
obj.value = plus+val;
}
</script>
</HTML>
RegExp 使用说明 一:正则表达式的创建方式 注意:RegExp预置了$属性
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript1.2">
var regexp = new RegExp("(w+)s(w+)");
str = "John Smith";
newstr=str.replace(regexp,"$2");
newstr2=str.replace(regexp,"$1");
document.write("原字符串:"+str+"<br/>");
document.write(newstr+"<br/>");
document.write(newstr2+"<br/>");
document.write('$1='+RegExp.$1+" $2="+RegExp.$2);
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
二: match() 方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。它返回指定的值,而不是字符串的位置。 语法 如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。 match使用实例:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<SCRIPT LANGUAGE="JavaScript1.2">
var str="1 plus 2 equal 3";
var str2="11/23/55";
var results=str.match(new RegExp("d+","gi"));
for(var i=0;i<results.length;i++){
document.write(results[i]+"<br/>");
}
var res=str2.match(new RegExp("(dd?)/(dd?)/(dd)"));
if(str2.length == res[0].length){
document.write(res[1]+"<br/>");
document.write(res[2]+"<br/>");
document.write(res[3]+"<br/>");
}
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
function dateCheck(value) {
re = new RegExp("(dd?)/(dd?)/(dd)");
var result = value.match (re);
if (result){
if (result[0].length != value.length){
alert ("Wrong date format. The correct format should be MM/dd/yy.")
return false;
}else{
var t = result[3];
var y = parseInt("20" + t);
var m = parseInt(result[1],10) - 1;
var day = parseInt(result[2],10);
var d = new Date(y,m,day);
if (d.getFullYear() != y || d.getMonth() != m || d.getDate() != day){
alert ("error date!")
return false;
}else{
var sm = result[1].length == 1?'0' + result[1]:result[1];
var sday = result[2].length == 1?'0' + result[2]: result[2];
var sy = result[3];
else
return sm + '/' + sday + '/' + sy;
}
}
}else{
alert ("Wrong date format. The correct format should be MM/dd/yy.");
return false;
}
}
(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
