changes
This commit is contained in:
36
components/menu/MarkData.vue
Normal file
36
components/menu/MarkData.vue
Normal file
@@ -0,0 +1,36 @@
|
||||
<template>
|
||||
<div>{{maskLoanAndAmountByKeyword(row.content)}}</div>
|
||||
</template>
|
||||
<script setup>
|
||||
const props = defineProps({
|
||||
row: Object
|
||||
})
|
||||
function maskLoanAndAmountByKeyword(str) {
|
||||
// Che mã đơn vay sau từ "đơn vay"
|
||||
let result = str.replace(/(đơn vay\s+)([A-Z]{2})(\d+)(\d{3})/gi, (m, prefix, letters, middle, last3) => {
|
||||
return prefix + letters + '*'.repeat(middle.length) + last3;
|
||||
});
|
||||
|
||||
// Che mã đơn vay sau từ "khoản vay"
|
||||
result = result.replace(/(khoản vay\s+)([A-Z]{2})(\d+)(\d{3})/gi, (m, prefix, letters, middle, last3) => {
|
||||
return prefix + letters + '*'.repeat(middle.length) + last3;
|
||||
});
|
||||
|
||||
// Che số tiền sau từ "số tiền"
|
||||
result = result.replace(/(số tiền\s+)(\d{1,3}(?:,\d{3})*)/gi, (m, prefix, amount) => {
|
||||
const digits = amount.replace(/,/g, '');
|
||||
if (digits.length <= 3) return prefix + amount;
|
||||
const masked = '*'.repeat(digits.length - 3) + digits.slice(-3);
|
||||
|
||||
// thêm lại dấu phẩy từ phải sang
|
||||
const parts = [];
|
||||
for (let i = masked.length; i > 0; i -= 3) {
|
||||
const start = Math.max(0, i - 3);
|
||||
parts.unshift(masked.slice(start, i));
|
||||
}
|
||||
return prefix + parts.join(',');
|
||||
});
|
||||
|
||||
return result;
|
||||
}
|
||||
</script>
|
||||
Reference in New Issue
Block a user