跳到主要内容

查找格式正确的身份证号码

信息

支持在文本类型的列中查找出符合中国身份证号码格式的数据并显示出来

实际效果

以下为模拟的示例数据,非真实姓名和身份证号码

id_card

源代码

const datasheet = await space.getActiveDatasheetAsync();
const idCardField = await input.fieldAsync("请选择身份证号所在列:", datasheet);
const idCardFieldId = idCardField.id;

// 中国大陆身份证正则
const regexReg = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}$)/;

const records = await datasheet.getRecordsAsync();
const finalData = ['匹配到的身份证号'];

for (let record of records) {
let cellValue = record.getCellValue(idCardFieldId);

if (cellValue == null) continue;

const validation = cellValue.match(regexReg);

if (validation != null) {
finalData.push(record.getCellValueString(idCardFieldId));
}
}

if (finalData.length){
output.table(finalData);
} else {
output.text("没有匹配的数据")
}