Javascript检查浮动

Javascript检查浮动,javascript,type-conversion,Javascript,Type Conversion,我有一个用户输入坐标的应用程序 在DB和大多数绘图软件中,他们使用lat/lng的十进制表示法(例如123.1234),而不是较旧的格式:34N 40'50.12” 我需要测试输入到表单中的值是否是一个浮点,而不是一个字符串。但是在34n40'50.12“上使用parseFloat返回34——这在大多数测试中都是有效的 这就是我正在尝试的,它是这里找到的一些非常聪明的解决方案的混合体——但到目前为止,我无法让它在所有情况下都正常工作。我正在测试的基本案例有: 123.1234——有效 '123

我有一个用户输入坐标的应用程序

在DB和大多数绘图软件中,他们使用lat/lng的十进制表示法(例如
123.1234
),而不是较旧的格式:
34N 40'50.12”

我需要测试输入到表单中的值是否是一个浮点,而不是一个字符串。但是在
34n40'50.12“
上使用parseFloat返回34——这在大多数测试中都是有效的

这就是我正在尝试的,它是这里找到的一些非常聪明的解决方案的混合体——但到目前为止,我无法让它在所有情况下都正常工作。我正在测试的基本案例有:

  • 123.1234
    ——有效
  • '123.1234'
    --有效
  • 34N 40'50.12”
    --无效
  • '34N 40'50.12'
    --无效
  • 123
    ——有效
  • '123'
    --有效
下面是我一直在尝试的一部分:

试试看

/^\d+\.?\d*$/.test( str );

Fiddle

似乎我应该发布一个答案

应该努力过滤掉那些

我建议这样做:

/^-?(\d*\.\d+|\d+(\.\d+)?)$/.test(str)
它接受负数,并像(.42)一样浮动


test

isNaN
应该能够过滤掉那些问题:@JosephMarikle你应该加上这个作为答案,这是最简单的测试方法。@JosephMarikle同意。把它放上去,我会投票:)
/\D/.test('123.45')
//true@Jack非常感谢。想出了一个不同的表达:)@Joseph——简单,优雅——正是我想要的!谢谢。@Bruno不客气。:)很高兴我能帮上忙(哈哈,我评论错地方了……太晚了)