JavaScript中的小数分隔符符号是什么?

CommunityVilx-提出了一个问题:What is the decimal separator symbol in JavaScript?,或许与您遇到的问题类似。

回答者Andy E给出了该问题的处理方式:

According to the specification, a DecimalLiteral is defined as:

-------------- --
    --------------------- - ---------------- --------------- 
    - ------------- --------------- 
    --------------------- ---------------

and for satisfying the parseFloat argument:

  1. Let inputString be ToString(string).
  2. Let trimmedString be a substring of inputString consisting of the leftmost character that is not a StrWhiteSpaceChar and all characters to the right of that character.(In other words, remove leading white space.)
  3. If neither trimmedString nor any prefix of trimmedString satisfies the syntax of a StrDecimalLiteral (see 9.3.1), return NaN.
  4. Let numberString be the longest prefix of trimmedString, which might be trimmedString itself, that satisfies the syntax of a StrDecimalLiteral.
  5. Return the Number value for the MV

So numberString becomes the longest prefix of trimmedString that satisfies the syntax of a StrDecimalLiteral, meaning the first parseable literal string number it finds in the input. Only the . can be used to specify a floating-point number. If you're accepting inputs from different locales, use a string replace:

-------- ------------------ -
    ------ ------------------ ------
-

The function uses the unary operator instead of parseFloat because it seems to me that you want to be strict about the input. parseFloat("1ABC") would be 1, whereas using the unary operator +"1ABC" returns NaN. This makes it MUCH easier to validate the input. Using parseFloat is just guessing that the input is in the correct format.

希望本文对你有帮助,欢迎支持JavaScript中文网

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/24951


猜你喜欢

  • 对旧浏览器使用HTML5的“数据*”属性有什么问题吗?

    随着HTML5的广泛应用,越来越多的Web开发者开始使用HTML5中的“数据*”属性来存储和获取元素相关的信息。虽然这个特性非常方便,但是在旧版本的浏览器中可能会存在一些问题。

    7 年前
  • 如何在Appcelerator的钛项目组织js文件

    简介 Appcelerator Titanium是一种开源的跨平台移动应用程序开发框架,使用JavaScript语言编写。在一个大型的Titanium项目中,代码文件数量会很多,因此正确组织文件结构至...

    7 年前
  • RequireJS图书馆解析

    什么是RequireJS? RequireJS 是一个 JavaScript 模块加载器,旨在使前端模块化开发更加容易和高效。它使用异步模块定义(AMD)规范来管理模块之间的依赖关系,并可实现代码的懒...

    7 年前
  • this.key React.js 0.12

    在 React.js 0.12 版本中,this.key 是一个非常重要的概念。它用于在 JSX 中为元素提供唯一标识符,以帮助 React 更高效地更新组件树。 key 的作用 React 使用 k...

    7 年前
  • 前端存储限制

    在前端开发中,我们经常需要存储一些数据以便后续使用。例如,当用户在购物网站上添加商品到购物车时,我们希望能够将这些商品信息保存下来,以便用户在离开该页面之后再次访问网站时能够看到他们的购物车内容。

    7 年前
  • 全球每个茉莉?

    前言 随着互联网的普及,全球茉莉花市场越来越大。在这个市场中,许多企业都希望拥有自己的“全球每个茉莉”——一个能够为用户提供完美体验的网站。 在本文中,我们将探讨如何通过前端技术来实现这一目标。

    7 年前
  • 定义函数的原型和类属性有什么区别?

    在 JavaScript 中,函数既可以通过函数声明或函数表达式创建,也可以通过函数的原型属性或类属性(ES6 中的类)来定义。虽然这些方法都可以用于定义函数,但它们之间有一些重要的区别。

    7 年前
  • JavaScript中的原型关键字

    什么是原型? 在JavaScript中,每个对象都有一个指针,指向它的“原型”(prototype)。原型可以看作是该对象的“父对象”,因为该对象可以从其原型继承属性和方法。

    7 年前
  • JavaScript 匿名函数调用

    在 JavaScript 中,函数是一等公民,它们可以被赋值给变量、作为参数传递给其他函数,甚至可以匿名定义并立即调用。 什么是匿名函数调用? 匿名函数是没有函数名的函数,它们通常用于声明临时函数或作...

    7 年前
  • 从控制台调用JavaScript函数

    在前端开发中,控制台是一个非常有用的工具。除了调试代码和查看日志之外,我们还可以使用控制台来调用JavaScript函数。本文将介绍如何在控制台中调用JavaScript函数,并提供相应的示例代码。

    7 年前
  • array.prototype.indexOf() vs. array.prototype.includes()

    在 JavaScript 中,数组是一个重要的数据类型,而数组方法则是我们日常工作中经常使用的工具。其中 indexOf() 和 includes() 是两个常用的数组方法,它们都可以在数组中查找指定...

    7 年前
  • 前端上传文件:如何实现文件上传功能

    文件上传是Web开发中常见的功能之一。在前端,我们通常使用HTML表单和JavaScript来实现文件上传功能。本文将介绍如何使用HTML5的File API来上传文件,并通过示例代码演示具体实现过程...

    7 年前
  • 水平滑动滑块与jQuery和触摸设备的支持

    在 Web 前端开发中,水平滑动滑块是一个经常用到的功能。它可以让用户通过拖动滑块来选择数值范围、调整音量等。本文将介绍如何使用 jQuery 来实现水平滑动滑块,并且讨论其在触摸设备上的支持。

    7 年前
  • 使用JavaScript变量在WebDriver中进行阅读

    简介 WebDriver是一个用于自动化Web浏览器测试的工具,它提供了一套API来模拟用户与网页的交互。在使用WebDriver时,经常需要在JavaScript中使用变量来存储一些数据,然后在测试...

    7 年前
  • 浏览器代码编辑器中有好吗?

    在前端开发过程中,我们都需要使用代码编辑器来编写、调试和管理代码。虽然市场上已经有很多成熟的代码编辑器,比如 VS Code、Sublime Text、Atom 等,但是是否有浏览器内置的代码编辑器值...

    7 年前
  • JavaScript 使用教程

    JavaScript 是一种广泛使用的脚本语言,用于构建 Web 应用程序和动态网页。本文将深入介绍 JavaScript 的基础知识和高级应用,帮助您学习 JavaScript 的使用。

    7 年前
  • 如何在 JSDoc 中指定对象数组作为参数或返回值?

    在前端开发中,我们经常需要传递和处理对象数组。使用 JSDoc 可以方便地为函数和方法定义参数和返回值的类型,以提高代码可读性和维护性。本文将介绍如何在 JSDoc 中指定对象数组作为参数或返回值。

    7 年前
  • 帆布绘制图像缩放

    在前端开发中,图像的缩放是一个常见的需求。在 HTML5 中,我们可以使用 Canvas(帆布)元素来进行图像的绘制和处理。本文将详细介绍如何使用 Canvas 绘制图像并进行缩放,并提供示例代码。

    7 年前
  • 跨域POST请求不发送cookie Ajax jQuery

    在前端开发中,跨域请求是一个常见的问题。由于同源策略的限制,浏览器默认情况下不允许页面向不同域名的服务器发送请求。但是,在某些情况下,我们需要向其他域名的服务器发送请求,并且希望在请求中发送cooki...

    7 年前
  • setInterval回调只运行一次的解决方案

    在前端开发中,经常需要使用定时器来执行某些操作。其中setInterval()方法是用于循环执行函数或代码段的功能函数。然而,有时候我们会遇到setInterval回调只运行一次的情况,这会影响我们的...

    7 年前

相关推荐

    暂无文章