如果没有连字符的数字,javascript正则表达式删除引号

时间:2014-01-02 18:17:56

标签: javascript regex json

我想仅在匹配表达式是数字并且后面没有连字符时才删除引号。现在正在这样做:

$obj.replace(/"([\d.-]+)"/g,"$1")

其中$ obj是JSON.stringify o / p。如果数字后面没有连字符,如何修改正则表达式以删除引号所以“12”应该转换为12,但“44-45”应保持不变。

感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

从字符类中删除-:数字中没有缩写。要仅在开头设置可选减号,请在前面添加-?

$obj.replace(/"(-?[\d.]+)"/g,"$1")

当我们在这里时,你可能还想检查只有一个小数点,并留下像"1.2.3.4"一样的字符串。

$obj.replace(/"(-?(\d+\.?\d*|\.\d+))"/g,"$1")
//                 ^^^^^^^^^           a number with optional decimal places
//                           ^^^^^     decimal point followed by digits