Question

I'm testing a method in my app. I'm generating a vcard from a stored contact and comparing it to an hardcoded vcard. They should be the exact same vcard, and they are. The problem is the test is failing and don't understand how.

From the logcat output it looks obvious that it is not printing a double new line (\n\n)

Here is my code:

public void testGetContactAsVcard() {

    String vcardActual = utils.getContactAsVcard(contact.getAllContactIds().get(0));

    // This is the vcard for the first contact (position zero)
    String vcardExpected = "BEGIN:VCARD" +
            "\nVERSION:2.1" +
            "\nN:Klisnmann;Jurgen;;;" +
            "\nFN:Jurgen Klinsmann" +
            "\nX-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;mynickname;;;;;;;;;;;;;;" +
            "\nTEL;CELL:922-222-222" +
            "\nTEL;WORK:911-222-333" +
            "\nEMAIL;WORK:work@mail.com" +
            "\nEMAIL;HOME:home@mail.com" +
            "\nADR;WORK:poBox;;StreetSomething;Berlin Alexanderplatz;Berlin;28000;Germany" +
            "\nADR;HOME:poBox;;MyStreet20;Berlin Potsdam;Berlin;2800;Germany" +
            "\nORG:MAT\\;MobileDept." +
            "\nTITLE:Eng." +
            "\nURL:www.company.com" +
            "\nURL:myblog.com" +
            "\nURL:custom.com" +
            "\nPHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwM" +
            "\n EAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/" +
            "\n 2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF" +
            "\n BQUFBQUFBQUFBQUFBT/wAARCAAkAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAA" +
            "\n ECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaE" +
            "\n II0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn" +
            "\n aGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJy" +
            "\n tLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAw" +
            "\n QFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobH" +
            "\n BCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp" +
            "\n anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0" +
            "\n tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD778e+J/Gem65qtvo1hq" +
            "\n 1xEvlm0ktrSN4MeWC4JMZZiW44OBn2xXis3xn/AGjl0Cyv4vhRrD3rrbG60trmzWeLc0iziNv" +
            "\n LMchj2Iy5dA6yryjBkH0z4v8ACOjeMrq1tNd8MLrlnAsjq9wI3gbzYZraWOSNmHmKYZ5QVZWU" +
            "\n iTpkDGdtg0fw/peoSeG/E0kklrb6e+lvfG8njFxJBCwuALh45HjAVnnLOVRZSJCGbd1RxCXLC" +
            "\n ME3tt+tnvonta76rXilQbbk5v8AHv5M8/8A+Er+J3/PDUv/AAVL/wDG6uaB4n+JE/iTSoby3v" +
            "\n hpsk6LcySaeEwu9QR/qum3dlsjGB1zkeneAPDuneFvCGm6dpejzaBaIjS/2fdSiWeOSRjJKZp" +
            "\n A8nmStI7s8hdy7szFmJJPQVp9ai42dOKf9eRH1SUZXVWTX9eYUUUVwnoBWb4m1RtD8OatqSmM" +
            "\n NZ2ktwDN9wFEZvm5HHHPIrSrlPiz/wAks8Zf9ga8/wDRD0AeIeMPiX8Z9KN2+geD9b1wR2KGC" +
            "\n A29tCZrsJcM4Lso2RsUt0U7WIabJyoYrytz8a/2j0YSQfCTWpbc2c1xse6sknEwmKQwFdhTcy" +
            "\n bJWbftRd4BkdVV/fNV0rf4m0vUZfBfiO6ure/QRT6draJa26tPdIbh4mu4wVCSGWVRGzMssSh" +
            "\n ZWiCx7EngfSotd0HUBYaxdXtiJ7KG7bV52FvC6l3Moef96jtHGMEO27yiQAm5OxYi7XuJaX6e" +
            "\n fdenn5dHwPDSjf32/m/Ls/X+tvBdU+Lfxx0uXUlT4eeJNWS3uYI7Z9NhscXULx7pJR5xiKGNw" +
            "\n yFW+9mMqSGfy/S/AfiLx/feMbS31qC7TSGVi8ktkIwW2OcMfLG0ZCYO7kkjA79d4k+DvgrxnN" +
            "\n HL4l8NWHiYx2n2JE12P7fGkOQWASbcoLlU3tjc/lpuLbFx2NH1hOLi4LX0/wAkOOGlGSftHp6" +
            "\n 6/j1MPWtQiXUbPT5E1SJrkhI7qygd4txDEq7qCIwAmdz7V5UBstg+CXnwign1i31GT4mfHExa" +
            "\n 74fewt5oZ5UgsPNltx5zW62oaG7YXbAPNGfKVJmxEYEZPTfHniPUZtZfTbDVLzQ/sodGns7mz" +
            "\n QzNJAwQkXEEuNjMHUjA3Iu/cpKmjffE+7ayRlW4t/OkSRZILy3aRVQpuQqYW2q+0g7hnEjbSM" +
            "\n KV5oN025Q62v8AK9vzv8nfodjSerV7X8t9/wAhPBep3llqN/pUuifEJl0i/Ed9rutS28kWoub" +
            "\n YytcRokpLRHy4l8u1iRBJchEjGycQ9dD421CXxVa6R/whfiCOxnLg645sxZxYTcN6/aPOG4go" +
            "\n MRH5hzgFSfPYviLqMev22oNqesSWkXm79KaWz+zTb3kZdzC0Eo2B1Vdsi5ESbtxLl+l0z4yLq" +
            "\n Gt2GmnSHje6cIJBKzKo3KpJOzGfmGASCcHHQ4540VSd4NO/l/w34L7zWU3Pf+vvuekUUUVqQF" +
            "\n cj8XoI7j4VeMVljWVRpF24V1BAZYXKn6ggEehArrqz/EOnyatoGp2MLIs1zaywoXJChmQgZxn" +
            "\n jmgDy34u/C3TfHzaBd3vjD4k+HbLR/tFitr4R1K9tBevcHyEkuPIQzSeSyLIkhIRc73LozZ6X" +
            "\n wj4bddRl1h9c8XXVrLI11ZaLq7rHFa5EisRhFkYSeYXEVzI/lnYFSHYFXh4vBPipXiaTwvBNs" +
            "\n GCrXaKH4wM7ZB7cjGcc55zWPw98Wkk/2Fj2F5F/8VWvsanLZSX3r/P+vvvze0p31T+5/wCR6L" +
            "\n 4Z+KFxrtnc3l74H8V+HbS3muoHk1OzhZy0EkceUhgmlldZGeTy2VCrLbu+QjwtLpeBvGl3400" +
            "\n rT9Qm8J674ZhvbCK+WLXUt4poi7OPIkijmd0lVVVmUjAEijO8OqeUf8K88W/9AP8A8nIf/iq2" +
            "\n oqCwooooAKKKKACiiigD/2Q==" +
            "\n\nNOTE:Somenotes..." +
            "\nX-ANDROID-CUSTOM:vnd.android.cursor.item/contact_event;1985-07-20;1;;;;;;;;;;;;;" +
            "\nEND:VCARD";

    Log.d(TAG, "vcard actual: " + vcardActual);
    Log.d(TAG, "vcard expected: " + vcardExpected);
    assertEquals(vcardExpected, vcardActual);
}

And here is the logcat output:

vcard actual: 

BEGIN:VCARD
VERSION:2.1
N:Klisnmann;Jurgen;;;
FN:Jurgen Klinsmann
X-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;mynickname;;;;;;;;;;;;;;
TEL;CELL:922-222-222
TEL;WORK:911-222-333
EMAIL;WORK:work@mail.com
EMAIL;HOME:home@mail.com
ADR;WORK:poBox;;StreetSomething;Berlin Alexanderplatz;Berlin;28000;Germany
ADR;HOME:poBox;;MyStreet20;Berlin Potsdam;Berlin;2800;Germany
ORG:MAT\;MobileDept.
TITLE:Eng.
URL:www.company.com
URL:myblog.com
URL:custom.com
PHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwM
 EAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/
 2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
 BQUFBQUFBQUFBQUFBT/wAARCAAkAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAA
 ECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaE
 II0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn
 aGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJy
 tLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAw
 QFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobH
 BCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
 anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0
 tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD778e+J/Gem65qtvo1hq
 1xEvlm0ktrSN4MeWC4JMZZiW44OBn2xXis3xn/AGjl0Cyv4vhRrD3rrbG60trmzWeLc0iziNv
 LMchj2Iy5dA6yryjBkH0z4v8ACOjeMrq1tNd8MLrlnAsjq9wI3gbzYZraWOSNmHmKYZ5QVZWU
 iTpkDGdtg0fw/peoSeG/E0kklrb6e+lvfG8njFxJBCwuALh45HjAVnnLOVRZSJCGbd1RxCXLC
 ME3tt+tnvonta76rXilQbbk5v8AHv5M8/8A+Er+J3/PDUv/AAVL/wDG6uaB4n+JE/iTSoby3v
 hpsk6LcySaeEwu9QR/qum3dlsjGB1zkeneAPDuneFvCGm6dpejzaBaIjS/2fdSiWeOSRjJKZp
 A8nmStI7s8hdy7szFmJJPQVp9ai42dOKf9eRH1SUZXVWTX9eYUUUVwnoBWb4m1RtD8OatqSmM
 NZ2ktwDN9wFEZvm5HHHPIrSrlPiz/wAks8Zf9ga8/wDRD0AeIeMPiX8Z9KN2+geD9b1wR2KGC
 A29tCZrsJcM4Lso2RsUt0U7WIabJyoYrytz8a/2j0YSQfCTWpbc2c1xse6sknEwmKQwFdhTcy
 bJWbftRd4BkdVV/fNV0rf4m0vUZfBfiO6ure/QRT6draJa26tPdIbh4mu4wVCSGWVRGzMssSh
 ZWiCx7EngfSotd0HUBYaxdXtiJ7KG7bV52FvC6l3Moef96jtHGMEO27yiQAm5OxYi7XuJaX6e
 fdenn5dHwPDSjf32/m/Ls/X+tvBdU+Lfxx0uXUlT4eeJNWS3uYI7Z9NhscXULx7pJR5xiKGNw
 yFW+9mMqSGfy/S/AfiLx/feMbS31qC7TSGVi8ktkIwW2OcMfLG0ZCYO7kkjA79d4k+DvgrxnN
 HL4l8NWHiYx2n2JE12P7fGkOQWASbcoLlU3tjc/lpuLbFx2NH1hOLi4LX0/wAkOOGlGSftHp6
 6/j1MPWtQiXUbPT5E1SJrkhI7qygd4txDEq7qCIwAmdz7V5UBstg+CXnwign1i31GT4mfHExa
 74fewt5oZ5UgsPNltx5zW62oaG7YXbAPNGfKVJmxEYEZPTfHniPUZtZfTbDVLzQ/sodGns7mz
 QzNJAwQkXEEuNjMHUjA3Iu/cpKmjffE+7ayRlW4t/OkSRZILy3aRVQpuQqYW2q+0g7hnEjbSM
 KV5oN025Q62v8AK9vzv8nfodjSerV7X8t9/wAhPBep3llqN/pUuifEJl0i/Ed9rutS28kWoub
 YytcRokpLRHy4l8u1iRBJchEjGycQ9dD421CXxVa6R/whfiCOxnLg645sxZxYTcN6/aPOG4go
 MRH5hzgFSfPYviLqMev22oNqesSWkXm79KaWz+zTb3kZdzC0Eo2B1Vdsi5ESbtxLl+l0z4yLq
 Gt2GmnSHje6cIJBKzKo3KpJOzGfmGASCcHHQ4540VSd4NO/l/w34L7zWU3Pf+vvuekUUUVqQF
 cj8XoI7j4VeMVljWVRpF24V1BAZYXKn6ggEehArrqz/EOnyatoGp2MLIs1zaywoXJChmQgZxn
 jmgDy34u/C3TfHzaBd3vjD4k+HbLR/tFitr4R1K9tBevcHyEkuPIQzSeSyLIkhIRc73LozZ6X
 wj4bddRl1h9c8XXVrLI11ZaLq7rHFa5EisRhFkYSeYXEVzI/lnYFSHYFXh4vBPipXiaTwvBNs
 GCrXaKH4wM7ZB7cjGcc55zWPw98Wkk/2Fj2F5F/8VWvsanLZSX3r/P+vvvze0p31T+5/wCR6L
 4Z+KFxrtnc3l74H8V+HbS3muoHk1OzhZy0EkceUhgmlldZGeTy2VCrLbu+QjwtLpeBvGl3400
 rT9Qm8J674ZhvbCK+WLXUt4poi7OPIkijmd0lVVVmUjAEijO8OqeUf8K88W/9AP8A8nIf/iq2
 oqCwooooAKKKKACiiigD/2Q==

NOTE:Somenotes...
X-ANDROID-CUSTOM:vnd.android.cursor.item/contact_event;1985-07-20;1;;;;;;;;;;;;;
END:VCARD



vcard expected: 

BEGIN:VCARD
VERSION:2.1
N:Klisnmann;Jurgen;;;
FN:Jurgen Klinsmann
X-ANDROID-CUSTOM:vnd.android.cursor.item/nickname;mynickname;;;;;;;;;;;;;;
TEL;CELL:922-222-222
TEL;WORK:911-222-333
EMAIL;WORK:work@mail.com
EMAIL;HOME:home@mail.com
ADR;WORK:poBox;;StreetSomething;Berlin Alexanderplatz;Berlin;28000;Germany
ADR;HOME:poBox;;MyStreet20;Berlin Potsdam;Berlin;2800;Germany
ORG:MAT\;MobileDept.
TITLE:Eng.
URL:www.company.com
URL:myblog.com
URL:custom.com
PHOTO;ENCODING=BASE64;JPEG:/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwM
 EAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/
 2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUF
 BQUFBQUFBQUFBQUFBT/wAARCAAkAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAA
 ECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaE
 II0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn
 aGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJy
 tLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAw
 QFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobH
 BCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hp
 anN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0
 tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD778e+J/Gem65qtvo1hq
 1xEvlm0ktrSN4MeWC4JMZZiW44OBn2xXis3xn/AGjl0Cyv4vhRrD3rrbG60trmzWeLc0iziNv
 LMchj2Iy5dA6yryjBkH0z4v8ACOjeMrq1tNd8MLrlnAsjq9wI3gbzYZraWOSNmHmKYZ5QVZWU
 iTpkDGdtg0fw/peoSeG/E0kklrb6e+lvfG8njFxJBCwuALh45HjAVnnLOVRZSJCGbd1RxCXLC
 ME3tt+tnvonta76rXilQbbk5v8AHv5M8/8A+Er+J3/PDUv/AAVL/wDG6uaB4n+JE/iTSoby3v
 hpsk6LcySaeEwu9QR/qum3dlsjGB1zkeneAPDuneFvCGm6dpejzaBaIjS/2fdSiWeOSRjJKZp
 A8nmStI7s8hdy7szFmJJPQVp9ai42dOKf9eRH1SUZXVWTX9eYUUUVwnoBWb4m1RtD8OatqSmM
 NZ2ktwDN9wFEZvm5HHHPIrSrlPiz/wAks8Zf9ga8/wDRD0AeIeMPiX8Z9KN2+geD9b1wR2KGC
 A29tCZrsJcM4Lso2RsUt0U7WIabJyoYrytz8a/2j0YSQfCTWpbc2c1xse6sknEwmKQwFdhTcy
 bJWbftRd4BkdVV/fNV0rf4m0vUZfBfiO6ure/QRT6draJa26tPdIbh4mu4wVCSGWVRGzMssSh
 ZWiCx7EngfSotd0HUBYaxdXtiJ7KG7bV52FvC6l3Moef96jtHGMEO27yiQAm5OxYi7XuJaX6e
 fdenn5dHwPDSjf32/m/Ls/X+tvBdU+Lfxx0uXUlT4eeJNWS3uYI7Z9NhscXULx7pJR5xiKGNw
 yFW+9mMqSGfy/S/AfiLx/feMbS31qC7TSGVi8ktkIwW2OcMfLG0ZCYO7kkjA79d4k+DvgrxnN
 HL4l8NWHiYx2n2JE12P7fGkOQWASbcoLlU3tjc/lpuLbFx2NH1hOLi4LX0/wAkOOGlGSftHp6
 6/j1MPWtQiXUbPT5E1SJrkhI7qygd4txDEq7qCIwAmdz7V5UBstg+CXnwign1i31GT4mfHExa
 74fewt5oZ5UgsPNltx5zW62oaG7YXbAPNGfKVJmxEYEZPTfHniPUZtZfTbDVLzQ/sodGns7mz
 QzNJAwQkXEEuNjMHUjA3Iu/cpKmjffE+7ayRlW4t/OkSRZILy3aRVQpuQqYW2q+0g7hnEjbSM
 KV5oN025Q62v8AK9vzv8nfodjSerV7X8t9/wAhPBep3llqN/pUuifEJl0i/Ed9rutS28kWoub
 YytcRokpLRHy4l8u1iRBJchEjGycQ9dD421CXxVa6R/whfiCOxnLg645sxZxYTcN6/aPOG4go
 MRH5hzgFSfPYviLqMev22oNqesSWkXm79KaWz+zTb3kZdzC0Eo2B1Vdsi5ESbtxLl+l0z4yLq
 Gt2GmnSHje6cIJBKzKo3KpJOzGfmGASCcHHQ4540VSd4NO/l/w34L7zWU3Pf+vvuekUUUVqQF
 cj8XoI7j4VeMVljWVRpF24V1BAZYXKn6ggEehArrqz/EOnyatoGp2MLIs1zaywoXJChmQgZxn
 jmgDy34u/C3TfHzaBd3vjD4k+HbLR/tFitr4R1K9tBevcHyEkuPIQzSeSyLIkhIRc73LozZ6X
 wj4bddRl1h9c8XXVrLI11ZaLq7rHFa5EisRhFkYSeYXEVzI/lnYFSHYFXh4vBPipXiaTwvBNs
 GCrXaKH4wM7ZB7cjGcc55zWPw98Wkk/2Fj2F5F/8VWvsanLZSX3r/P+vvvze0p31T+5/wCR6L
 4Z+KFxrtnc3l74H8V+HbS3muoHk1OzhZy0EkceUhgmlldZGeTy2VCrLbu+QjwtLpeBvGl3400
 rT9Qm8J674ZhvbCK+WLXUt4poi7OPIkijmd0lVVVmUjAEijO8OqeUf8K88W/9AP8A8nIf/iq2
 oqCwooooAKKKKACiiigD/2Q==
NOTE:Somenotes...
X-ANDROID-CUSTOM:vnd.android.cursor.item/contact_event;1985-07-20;1;;;;;;;;;;;;;
END:VCARD

As you can see, in the vcardActual between the PHOTO and the NOTE there is a new empty line but that does not happen in the vcardExpected even tho I've placed a \n\n before the NOTE.

I would expect an empty new line between PHOTO and NOTE but for some reason it does not happen. Why and how is this happening?

Was it helpful?

Solution

Got the solution.

First -> Never rely solely on logcat! The new line was ALWAYS there but logcat wasn't outputting it for some reason that I don't know yet.

Second -> JUnit was adding a [, ], <, > and a new line.

Solution: Remove all whitespaces and new lines from both strings and compare them.

final String vcardNoWhiteSpacesNoNewLinesExpected = vcardExpected.replace("\n", "").replace("\r", "").replace(" ", "");
final String vcardNoWhiteSpacesNoNewLinesActual = vcardActual.replace("\n", "").replace("\r", "").replace(" ", "");

They both match now, problem solved.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top