Skip to content

Commit

Permalink
fix(web): input-number input number validate (#1566)
Browse files Browse the repository at this point in the history
* fix(web): input-number input number validate

* fix(web): canInputNumber

---------

Co-authored-by: sheepluo <sheepluo@tencent.com>
  • Loading branch information
chaishi and sheepluo authored Aug 14, 2023
1 parent 8b3930f commit f8eb7e1
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 3 deletions.
6 changes: 3 additions & 3 deletions js/input-number/number.ts
Original file line number Diff line number Diff line change
Expand Up @@ -211,9 +211,9 @@ export function canInputNumber(number: string, largeNumber: boolean) {
if (number.slice(0, 2) === '00') return false;
// 只能出现一个点(.)
if (number.match(/\./g)?.length > 1) return false;
// 只能出现一个负号(-),并且在第一个位置
const minusSignCount = number.match(/-/g)?.length || 0;
if (minusSignCount > 1 || (minusSignCount === 1 && number[0] !== '-')) return false;
// 只能出现一个负号(-)或 一个正号(+),并且在第一个位置;但允许 3e+10 这种形式
const tmpNumber = number.slice(1);
if (/(\+|-)/.test(tmpNumber) && !/e+/i.test(tmpNumber)) return false;
// 允许输入数字字符
const isNumber = (largeNumber && isInputNumber(number)) || !Number.isNaN(Number(number));
if (!isNumber && !specialCode.includes(number.slice(-1))) return false;
Expand Down
1 change: 1 addition & 0 deletions test/unit/input-number/number.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,7 @@ describe('canInputNumber', () => {
it('normal number: number letters are allowed', () => {
expect(canInputNumber('-')).toBe(true);
expect(canInputNumber('1.3e')).toBe(true);
expect(canInputNumber('+1.22+++')).toBe(false);
expect(canInputNumber('1.23E')).toBe(true);
expect(canInputNumber('1.23E+')).toBe(true);
expect(canInputNumber('1.23E+08')).toBe(true);
Expand Down

0 comments on commit f8eb7e1

Please sign in to comment.