Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP fix(toNumber): fix issue #2598 and add test #2604

Closed
wants to merge 2 commits into from

Conversation

stmtk1
Copy link

@stmtk1 stmtk1 commented Nov 13, 2020

what I did

@stmtk1 stmtk1 changed the title fix(toNumber): fix issue #2598 and add test WIP fix(toNumber): fix issue #2598 and add test Nov 13, 2020
@dsonet
Copy link
Contributor

dsonet commented Nov 13, 2020

Do not think toNumber should return a value other than a number, it should be a number or NaN.

Copy link
Contributor

@Alanscut Alanscut left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

test failed, '3.14aa'.match(/\d+(\.\d+)?/) is true.

@@ -160,6 +160,10 @@ export const def = (obj: object, key: string | symbol, value: any) => {
}

export const toNumber = (val: any): any => {
if (typeof val === 'string') {
const matched = val.match(/\d+(\.\d+)?/)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
const matched = val.match(/\d+(\.\d+)?/)
const matched = val.match(/^\d+(\.\d+)?$/)

@yyx990803 yyx990803 closed this in 7d0c63f Nov 14, 2022
chrislone pushed a commit to chrislone/core that referenced this pull request Feb 4, 2023
close vuejs#4946
close vuejs#2598
close vuejs#2604

This commit also refactors internal usage of previous loose
implementation of `toNumber` to the stricter version where applicable.
Use of `looseToNumber` is preserved for `v-model.number` modifier to
ensure backwards compatibility and consistency with Vue 2 behavior.
zhangzhonghe pushed a commit to zhangzhonghe/core that referenced this pull request Apr 12, 2023
close vuejs#4946
close vuejs#2598
close vuejs#2604

This commit also refactors internal usage of previous loose
implementation of `toNumber` to the stricter version where applicable.
Use of `looseToNumber` is preserved for `v-model.number` modifier to
ensure backwards compatibility and consistency with Vue 2 behavior.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

toNumber is lenient
3 participants