如何使节点线阅读器有条件地跳过线

我目前正在使用一个在线阅读器将信用卡号码inputvalidation器和标识符的项目。 比方说,我input10个数字,他们来自四个不同的信用卡公司。 我想忽略三家公司,只显示其余公司的数字。

这个公司的规则(条件)是它必须有15个数字,并且从37或34开始

4111111111111111 4111111111111 4012888888881881 378282246310005 6011111111111117 5105105105105100 5105105105105106 9111111111111111 371449635398431 378734493671000 

这是我目前的临时模块:

 export const isAmex = (creditCard: string): boolean => creditCard.length === 15 && (creditCard.substring(0, 2) === '37' || creditCard.substring(0, 2) === '34') export const is2Amex = (creditCard: string): boolean => creditCard.length === 15 && (creditCard.substring(0, 2) === '37' || creditCard.substring(0, 2) === '34') export const ifIsntAmex = (creditCard: string) => { if (!is2Amex(creditCard)) { return ' ' } else { return creditCard } } export const getAmexName = (creditCard: string) => { if (!isAmex(creditCard)) { return ' ' } else { return 'AMEX' } } 

这是索引的一部分:

 const outputAmex: string[] = [] lineReader.on('line', (creditCard: string) => { outputAmex.push( `${getAmexName(creditCard)}: ${ifIsntAmex(creditCard)} (${cardValidator(creditCard) ? 'valid' : 'invalid'})` ) }) lineReader.on('close', () => { fs.writeFile('./data/Amex.txt', outputAmex.join('\n'), err => { if (err) throw err console.log('The file has been saved!') }) }) 

它返回这样的东西:

 : (valid) : (invalid) : (valid) AMEX: 378282246310005 (invalid) : (valid) : (valid) : (invalid) : (invalid) AMEX: 371449635398431 (invalid) AMEX: 378734493671000 (invalid) 

我将如何忽略非美国运通线?

 lineReader.on('line', (creditCard: string) => { if (getAmexName(creditCard)) { outputAmex.push( `${getAmexName(creditCard)}: ${creditCard} (${ cardValidator(creditCard) ? 'valid' : 'invalid' })` ) } }) 

这样的事情?