Kaynağa Gözat

Improve length field validation.

Maciej Gołaszewski 5 yıl önce
ebeveyn
işleme
15bc5c6db6

+ 5 - 1
packages/ckeditor5-table/src/ui/utils.js

@@ -234,6 +234,10 @@ export function fillToolbar( { view, icons, toolbar, labels, propertyName } ) {
 	}
 }
 
+// A simple helper method to detect number strings.
+// I allows full number notation, so omitting 0 is not allowed:
 function isNumberString( value ) {
-	return !Number.isNaN( parseFloat( value ) );
+	const parsedValue = parseFloat( value );
+
+	return !Number.isNaN( parsedValue ) && value === String( parsedValue );
 }

+ 6 - 1
packages/ckeditor5-table/tests/ui/utils.js

@@ -251,7 +251,12 @@ describe( 'UI Utils', () => {
 			expect( lengthFieldValidator( '1' ) ).to.be.true;
 			expect( lengthFieldValidator( '12.1' ) ).to.be.true;
 			expect( lengthFieldValidator( '0.125 ' ) ).to.be.true;
-			expect( lengthFieldValidator( '.1 ' ) ).to.be.true;
+		} );
+
+		it( 'should not pass for invalid number values', () => {
+			expect( lengthFieldValidator( '.1 ' ) ).to.be.false;
+			expect( lengthFieldValidator( '45. ' ) ).to.be.false;
+			expect( lengthFieldValidator( '45.1.1 ' ) ).to.be.false;
 		} );
 
 		it( 'should pass for lengths surrounded by white spaces', () => {