2017-12-07 8 views
1

私は現在、ラインリーダーを使用してクレジットカード番号をバリデータと識別子に入力するプロジェクトに取り組んでいます。私は10の数字を入力し、彼らは4つの異なるクレジットカード会社のものです。私は3つの企業を無視し、残りの企業の数字のみを表示したい。ノードラインリーダーを条件付きでスキップするには

この会社のルール(条件)は、それはそれで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) 

Amex以外の行はどのように無視しますか?

答えて

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

これは最終的に私のために働いたものです。

0
lineReader.on('line', (creditCard: string) => { 
    if (is2Amex(creditCard)) { 
     outputAmex.push(); 
    } 
}) 

何か?