dealfapiao
Version:
153 lines (128 loc) • 3.2 kB
JavaScript
// 根据版本来设计函数
// 1.5和1.7通用
function checkRate(input) {
// var re = /^[0-9]+.?[0-9]*/;//判断字符串是否为数字//判断正整数/[1−9]+[0−9]∗]∗/
let re = /^[0|1]\d{11}/
if (!re.test(input)) {
return false
}
return true
}
function fun5and7(data){
let arr = data.split(/\r\n/)
console.log(arr);
let brage = 0
let code ='';
let num = ''
for (let i = 0; i < arr.length; i++) {
if (checkRate(arr[i])) {
brage = i;
break;
}
}
code = arr[brage];
// console.log("code".red,code)
num = arr[brage + 1];
// console.log("num".red,num)
// console.log(arr[brage])
// console.log(arr[brage + 1])
let reg = /(¥|¥)(-?[0-9,]+)(\.[0-9]+)?/g
// let reg = /"价税合计"+[\u4e00-\u9fa5]?(¥)(-?[0-9,]+)(\.[0-9]+)?/
// let reg2 = /\d+(\.\d+)?/ig
let reg2 = /\d+\.?\d*/g
let arrmoney=[];
for (let j = 0; j < arr.length; j++) {
let str = arr[j].replace(/\s*/g,"")
let n = str.match(reg);
if(n!=null){
arrmoney=[...n,...arrmoney]
// console.log(n);
}
}
// console.log("arrmoney:".red,arrmoney);
let moneys = arrmoney.map(e=>{
// console.log(e.match(reg2)[0]);
return Number(e.match(reg2)[0])
})
let money = Math.max.apply(null,moneys);
return {
code,
num,
money
}
}
function fun3(data){
let arr = data.split(/\r\n/);
// console.log("<=====1.3")
// console.log(arr);
// console.log("=====>1.3")
let brage = 0
let code ='';
let num = ''
for (let i = 0; i < arr.length; i++) {
if (checkRate(arr[i])) {
brage = i;
break;
}
}
code = arr[brage];
num = arr[brage + 1];
let moneyText = arr[brage+11];
let money = moneyText.replace(/[^0-9[.]/ig,"")
return {
code,
num,
money
}
}
function fun4plus(data){
return fun5and7(data)
}
function fun4(data){
let arr = data.split(/\r\n/);
// console.log("<=====1.4")
// console.log(arr);
// console.log("=====>1.4")
let codeText,numText,moneyText;
let code,num,money;
for (let i = 0; i < arr.length; i++) {
if(arr[i].includes('发票代码')){
codeText= arr[i]
continue
}
if(arr[i].includes('发票号码')){
numText= arr[i]
continue
}
if(arr[i].includes('价税合计')){
moneyText= arr[i]
continue
}
}
try {
code = codeText.replace(/[^0-9[.]/ig,"")
num = numText.replace(/[^0-9[.]/ig,"")
money = moneyText.replace(/[^0-9[.]/ig,"")
console.log("<=====",code=="",num=="",money=="","===>")
if(code==''&&num==""){
let obj = fun4plus(data);
return {...obj}
}
} catch (error) {
}
// console.log({
// code,
// num,
// money
// })
return {
code,
num,
money
}
}
module.exports = {
fun5and7,
fun3,
fun4
}