简单写了一下,还有些细节自己处理下吧。<html> <script> function changeRq() { var rqObj = document.getElementById("rq"); var rqValue = rqObj.value; if(rqValue=="") return; var reg = /(.*)([〇一二三四五六七八九十]{4}年[〇一二三四五六七八九十]{1,3}月[〇一二三四五六七八九十]{1,3}日)(.*)/g; var x = [['〇','0'],['一','1'],['二','2'],['三','3'],['四','4'],['五','5'],['六','6'],['七','7'],['八','8'],['九','9'],['十','']]; if(reg.test(rqValue)){ var a = RegExp.$2; var f = RegExp.$1; var b = RegExp.$3; for(var i=0;i<x.length;i++){ a = a.replace(new RegExp(x[i][0],"g"),x[i][1]); } rqObj.value=f+a+b; } } </script> <body> <input type="text" name="rq" id="rq"/> <input type="button" onclick="changeRq();" value="转换"/> </body> </html>
我要好好学习 regexp 了 一点看不懂。。
我现在需要写好几个这样的,怎么写最方便,简洁,赋个同样的name还是弄个动态的id?
window.onload=function(){ var orgStr='一二三四五六七八九O年月日'; alert(dateExchange(orgStr)) } String.prototype.Trim = function() { return this.replace(/(^\s*)|(\s*$)/g, ""); } function dateExchange(str1){ if(str1.Trim==""){ console.log('转换不能为空'); return false; }
var orgArr=str1.split(''); var newArr=[]; for(var i=0;i<orgArr.length;i++){ if(mydateForm[orgArr[i]]){ newArr.push(mydateForm[orgArr[i]]); }else{ alert('false'); break; } } var str2=newArr.join(""); return str2;
<script>
function changeRq()
{
var rqObj = document.getElementById("rq");
var rqValue = rqObj.value;
if(rqValue=="") return;
var reg = /(.*)([〇一二三四五六七八九十]{4}年[〇一二三四五六七八九十]{1,3}月[〇一二三四五六七八九十]{1,3}日)(.*)/g;
var x = [['〇','0'],['一','1'],['二','2'],['三','3'],['四','4'],['五','5'],['六','6'],['七','7'],['八','8'],['九','9'],['十','']];
if(reg.test(rqValue)){
var a = RegExp.$2;
var f = RegExp.$1;
var b = RegExp.$3;
for(var i=0;i<x.length;i++){
a = a.replace(new RegExp(x[i][0],"g"),x[i][1]);
}
rqObj.value=f+a+b;
}
}
</script>
<body>
<input type="text" name="rq" id="rq"/> <input type="button" onclick="changeRq();" value="转换"/>
</body>
</html>
var orgStr='一二三四五六七八九O年月日';
alert(dateExchange(orgStr))
}
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function dateExchange(str1){
if(str1.Trim==""){
console.log('转换不能为空');
return false;
}
var orgArr=str1.split('');
var newArr=[];
for(var i=0;i<orgArr.length;i++){
if(mydateForm[orgArr[i]]){
newArr.push(mydateForm[orgArr[i]]);
}else{
alert('false');
break;
}
}
var str2=newArr.join("");
return str2;
}
var mydateForm={
'一':'1',
'二':'2',
'三':'3',
'四':'4',
'五':'5',
'六':'6',
'七':'7',
'八':'8',
'九':'9',
'O':'0',
'年':'Y',
'月':'M',
'日':'D',
};
我也简单的写了一下,没有用到正则,正则不太会
var orgStr='一二三四五六七八九O年月日';
alert(dateExchange(orgStr))
}
String.prototype.Trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
function dateExchange(str1){
if(str1.Trim==""){
console.log('转换不能为空');
return false;
}
var orgArr=str1.split('');
var newArr=[];
for(var i=0;i<orgArr.length;i++){
if(mydateForm[orgArr[i]]){
newArr.push(mydateForm[orgArr[i]]);
}else{
alert('false');
break;
}
}
var str2=newArr.join("");
return str2;
}
var mydateForm={
'一':'1',
'二':'2',
'三':'3',
'四':'4',
'五':'5',
'六':'6',
'七':'7',
'八':'8',
'九':'9',
'O':'0',
'年':'Y',
'月':'M',
'日':'D',
};
我也简单的写了一下,没有用到正则,正则不太会
<script>
function parseDate()
{
var rqObj = document.getElementById("rq");
var rqValue = rqObj.value;
if(rqValue=="") return;
var reg = /([〇一二三四五六七八九十]{4})年([〇一二三四五六七八九十]{1,3})月([〇一二三四五六七八九十]{1,3})日/g;
rqObj.value = rqValue.replace(reg, function (date, year, month,day)
{
var rs=[];
if(year && year.length==4) {
rs.push(parse(year));
}
if(month && month.length>0) {
if(month.length==3){month = month.substring(0,2);}
rs.push(parse(month));
}
if(day && day.length>0) {
if(day.length==3){day = day.substring(0,2);}
rs.push(parse(day));
}
return rs.join('-');
}
);
}
function parse(s)
{
var obj={'〇':0,'一':1,'二':2,'三':3,'四':4,'五':5,'六':6,'七':7,'八':8,'九':9,'十':1};
var rs=[];
for(var i=0;i<s.length;i++){
rs.push(obj[s.charAt(i)]);
}
return rs.join('');
}</script>
<body>
<input type="text" name="rq" id="rq" value="" onchange="parseDate();"/>
</html>
document.getElementById('t').onblur = function() {
var reg = /^([一二三四五六七八九][〇一二三四五六七八九]+)年([一二三四五六七八九]|十[一二]{0,1})月([一二三四五六七八九]|(十|二十)[一二三四五六七八九]{0,1}|三十(|一))日$/;
var value = this.value.replace(/^\s+|\s+$/g, '');
var matches = value.match(reg);
var date = [];
var temp;
if(matches) {
for(var i = 1; i <= 3; i++) {
temp = trans(matches[i]);
if(temp) {
date.push(temp);
}
}
if(date.length == 3) {
this.value = date.join('-');
}
}
}
function trans(str) {
var map = '〇一二三四五六七八九十';
return str.length == 0? '' :
str.length == 1? '0' + map.indexOf(str) :
str.length == 2? (/^十/.test(str)? '1' + map.indexOf(str.substr(1)) : map.indexOf(str.substr(0,1)) + '0') :
str.length == 3? map.indexOf(str.substr(0,1)).toString() + map.indexOf(str.substr(2,1)).toString() :
str.replace((new RegExp('\[' + map + ']', 'g')), function(a) {return map.indexOf(a)});
}