【发布时间】:2021-05-05 16:16:06
【问题描述】:
我有一个用 javascript 编写的代码,我正在尝试将其转录为 dart 这是我的 javascript 代码:
var Fn = {
validateRut : function (rutComplete) {
rutComplete = rutComplete.replace("‐","-");
if (!/^[0-9]+[-|‐]{1}[0-9kK]{1}$/.test( rutComplete ))
return false;
var tmp = rutComplete.split('-');
var digv = tmp[1];
var rut = tmp[0];
if ( digv == 'K' ) digv = 'k' ;
return (Fn.dv(rut) == digv );
},
dv : function(T){
var M=0,S=1;
for(;T;T=Math.floor(T/10))
S=(S+T%10*(9-M++%6))%11;
return S?S-1:'k';
}
}
但我在 for 循环部分有问题,因为我不太了解 dart 的工作原理,这是我一直在研究的代码
class Rut{
static bool validate(String rutComplete){
rutComplete = rutComplete.replaceAll("‐","-");
RegExp value=new RegExp(r'^[0-9]+[-|‐]{1}[0-9kK]{1}$');
if (!value.hasMatch(rutComplete))
return false;
var tmp = rutComplete.split('-');
var digv = tmp[1];
var rut = tmp[0];
if ( digv == 'K' ) digv = 'k' ;
return (dv(rut) == digv);
}
static String dv(String rut){
var M=0,S=1;
for(;int.parse(rut);rut=(int.parse(rut)/10).floor())
S=(S+int.parse(rut)%10*(9-M++%6))%11;
var result = S > 0 ? S-1:"k";
return result.toString();
}
}
非常感谢您的帮助
【问题讨论】:
标签: javascript dart