Elm:String.toFloat不';t仅使用逗号和点-怎么办?
我是elm的新手,我想做一个简单的里程计数器应用程序 如果我得到Elm:String.toFloat不';t仅使用逗号和点-怎么办?,elm,Elm,我是elm的新手,我想做一个简单的里程计数器应用程序 如果我得到“1.2”(点)表单输入-String.toFloat将以1.2作为数字返回OK分支 但是如果我得到“1,2”(逗号)表单输入,那么String.toFloat在Err分支中返回“不能有单词,只能有数字!” 这就像一个实时验证器。 守则: TypingInInput val -> case String.toFloat val of Ok success ->
“1.2”
(点)表单输入-String.toFloat
将以1.2作为数字返回OK分支
但是如果我得到“1,2”
(逗号)表单输入,那么String.toFloat
在Err分支中返回“不能有单词,只能有数字!”
这就像一个实时验证器。
守则:
TypingInInput val ->
case String.toFloat val of
Ok success ->
{ model | inputValue = val, errorMessage = Nothing }
Err err ->
{ model | inputValue = val, errorMessage = Just "You can't have words, or spaces, only numbers!" }
.
问题:那么我如何强制“1,2”的
String.toFloat
给我1.2数字呢?不幸的是toFloat
的源代码只硬编码为。在将逗号传递给toFloat
之前,可以将其替换为字符串中的点,作为解决方法
可用于简单的字符串替换。不幸的是,
toFloat
的源代码仅硬编码为。在将逗号传递给toFloat
之前,可以将其替换为字符串中的点,作为解决方法
可用于简单的字符串替换。的实现仅支持点作为分隔符
在解析Float
请参见示例:
导入Html(文本)
导入字符串
导入正则表达式
主要=
"1,2"
|>Regex.replace Regex.All(Regex.Regex“,”)(\ \ u->”)
|>String.toFloat
|>托斯特林
|>文本--1.2
在JavaScript中也不支持逗号分隔符。的实现只支持点作为分隔符
在解析Float
请参见示例:
导入Html(文本)
导入字符串
导入正则表达式
主要=
"1,2"
|>Regex.replace Regex.All(Regex.Regex“,”)(\ \ u->”)
|>String.toFloat
|>托斯特林
|>文本--1.2
JavaScript中也不支持逗号分隔符。yes@Chad Gilbert。谢谢,这看起来真漂亮!我这样替换了case语句:的
case String.toFloat(String.Extra.replace“,”val),但我遇到了以下错误:我找不到模块String.Extra
或者如果我只导入暴露的字符串(..),我得到:找不到变量String.Extra.replace
,限定符String.Extra
不在作用域“”中。我不知道怎么解决这个问题。您是如何做到的?从命令行运行此命令:elm package install elm community/string extra
。非常感谢@Chad Gilbert!我忘记安装了。现在一切正常:)我想你也可以使用String.map
。是的@Chad Gilbert。谢谢,这看起来真漂亮!我这样替换了case语句:
的case String.toFloat(String.Extra.replace“,”val),但我遇到了以下错误:我找不到模块String.Extra
或者如果我只导入暴露的字符串(..),我得到:找不到变量String.Extra.replace
,限定符String.Extra
不在作用域“”中。我不知道怎么解决这个问题。您是如何做到的?从命令行运行此命令:elm package install elm community/string extra
。非常感谢@Chad Gilbert!我忘记安装了。现在一切正常:)我想你也可以使用String.map
。