我想仅在匹配表达式是数字并且后面没有连字符时才删除引号。现在正在这样做:
$obj.replace(/"([\d.-]+)"/g,"$1")
其中$ obj是JSON.stringify o / p。如果数字后面没有连字符,如何修改正则表达式以删除引号所以“12”应该转换为12,但“44-45”应保持不变。
感谢任何帮助。
答案 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