@@ -67,7 +67,8 @@ function nonVisibleCharChecker(entry: string | undefined) {
6767 if ( ! entry ) {
6868 return null ;
6969 }
70- const nonVisibleCharCheck = / [ \u200B - \u200D \uFEFF \u180E ] / g. exec ( entry ) ;
70+ const nonVisibleCharCheck = / [ ^ \u0009 \u000A \u000D \u0020 - \u007E \u00C0 - \u024F ] + / g. exec ( entry ) ;
71+ // old regex /[\u200B-\u200D\uFEFF\u180E]/g
7172 return nonVisibleCharCheck ;
7273}
7374
@@ -522,16 +523,16 @@ export namespace Zod3 {
522523 if ( regexResultSubject !== null ) {
523524 return reject (
524525 new UploadError ( {
525- en : `Subject ID at row ${ rowNumber } contains non-visible characters ` ,
526- fr : `L'ID du sujet à la ligne ${ rowNumber } contient des caractères non visibles `
526+ en : `Subject ID at row ${ rowNumber } contains non-visible character(s) ${ regexResultSubject [ 0 ] } ` ,
527+ fr : `L'ID du sujet à la ligne ${ rowNumber } contient des caractères non visible(s) ${ regexResultSubject [ 0 ] } `
527528 } )
528529 ) ;
529530 }
530531 if ( regexResultDate !== null ) {
531532 return reject (
532533 new UploadError ( {
533- en : `Date at row ${ rowNumber } contains non-visible characters ` ,
534- fr : `Date à la ligne ${ rowNumber } contient des caractères non visibles `
534+ en : `Date at row ${ rowNumber } contains non-visible character(s) ${ regexResultDate [ 0 ] } ` ,
535+ fr : `Date à la ligne ${ rowNumber } contient des caractères non visible(s) ${ regexResultDate [ 0 ] } `
535536 } )
536537 ) ;
537538 }
@@ -556,11 +557,12 @@ export namespace Zod3 {
556557 }
557558
558559 //Check for non visible char in every row, return error if present
559- if ( nonVisibleCharChecker ( rawValue ) !== null ) {
560+ const nonVisibleChars = nonVisibleCharChecker ( rawValue ) ;
561+ if ( nonVisibleChars !== null ) {
560562 return reject (
561563 new UploadError ( {
562- en : `Value at row ${ rowNumber } and column ${ key } contains non-visible characters` ,
563- fr : `La valeur à la ligne ${ rowNumber } et colonne '${ key } ' contient des caractères non visibles`
564+ en : `Value at row ${ rowNumber } and column ${ key } contains non-visible characters ${ nonVisibleChars [ 0 ] } ` ,
565+ fr : `La valeur à la ligne ${ rowNumber } et colonne '${ key } ' contient des caractères non visibles ${ nonVisibleChars [ 0 ] } `
564566 } )
565567 ) ;
566568 }
@@ -875,16 +877,16 @@ export namespace Zod4 {
875877 if ( regexResultSubject !== null ) {
876878 return reject (
877879 new UploadError ( {
878- en : `Subject ID at row ${ rowNumber } contains non-visible characters` ,
879- fr : `L'ID du sujet à la ligne ${ rowNumber } contient des caractères non visibles`
880+ en : `Subject ID at row ${ rowNumber } contains non-visible characters ${ regexResultSubject [ 0 ] } ` ,
881+ fr : `L'ID du sujet à la ligne ${ rowNumber } contient des caractères non visibles ${ regexResultSubject [ 0 ] } `
880882 } )
881883 ) ;
882884 }
883885 if ( regexResultDate !== null ) {
884886 return reject (
885887 new UploadError ( {
886- en : `Date at row ${ rowNumber } contains non-visible characters` ,
887- fr : `Date à la ligne ${ rowNumber } contient des caractères non visibles`
888+ en : `Date at row ${ rowNumber } contains non-visible characters ${ regexResultDate [ 0 ] } ` ,
889+ fr : `Date à la ligne ${ rowNumber } contient des caractères non visibles ${ regexResultDate [ 0 ] } `
888890 } )
889891 ) ;
890892 }
@@ -906,11 +908,12 @@ export namespace Zod4 {
906908 const rawValue = cell == null ? '' : cell . trim ( ) ;
907909 if ( rawValue === '\n' ) continue ;
908910 // Return error if any non‑visible character is present
909- if ( nonVisibleCharChecker ( rawValue ) !== null ) {
911+ const nonVisibleChars = nonVisibleCharChecker ( rawValue ) ;
912+ if ( nonVisibleChars !== null ) {
910913 return reject (
911914 new UploadError ( {
912- en : `Value at row ${ rowNumber } and column ${ key } contains non-visible characters` ,
913- fr : `La valeur à la ligne ${ rowNumber } et colonne '${ key } ' contient des caractères non visibles`
915+ en : `Value at row ${ rowNumber } and column ${ key } contains non-visible characters ${ nonVisibleChar [ 0 ] } ` ,
916+ fr : `La valeur à la ligne ${ rowNumber } et colonne '${ key } ' contient des caractères non visibles ${ nonVisibleChar [ 0 ] } `
914917 } )
915918 ) ;
916919 }
0 commit comments