用于返回括号内带有浮点数的数字的正则表达式
Regular expression to return numbers with floating point within parentheses
这是一个示例字符串
var s = "some text 123 [Price $20.99] some other text";
我想获取括在方括号中的任何数值以及小数点。
我尝试的是
s.match(/'d+.'d+/);
结果是 123, 20.99,但我不希望它获取括号外的数字
谁能告诉我我做错了什么?
欢迎来到正则表达式的世界!
十进制点是正则表达式中的特殊字符,如果要从字面上匹配它,则需要使用反斜杠('
)对其进行转义。
这对我有用(从Chrome JavaScript控制台):
> var s = "some text 123 [Price $20.99] some other text";
> s.match(/'d+'.'d+/)[0];
"20.99"
如果您只想在方括号内搜索,那么您也需要添加它们;方括号也很特殊,因此需要转义。此外,如果要允许括号和数字之间的内容,您还需要特别允许这样做。然后,您需要使用捕获括号,这意味着您需要以与第一种简单情况略有不同的方式访问匹配项。这对我有用:
> var t = "Some text 123 and decimal number 12.34 and now [in square brackets 56.78] yada yada";
> t.match( /'[.*?('d+'.'d+).*?']/ )[1]
"56.78"
让我和你一起介绍正则表达式:
-
'[
文字方括号 -
.*?
除换行符以外的任何字符,零次或多次,非贪婪 -
(
开始捕获 -
'd+
号码一次或多次 -
'.
文字点 -
'd+
号码一次或多次 -
)
端捕获 -
.*?
除换行符以外的任何字符,零次或多次,非贪婪 -
']
文字方括号
你得到一个数组作为回报。数组元素0
将再次是整个匹配项,数组元素1
是第一次捕获的内容。
我让它工作
s.match(/'[*('d+.'d+)']/)[1]
相关文章:
- 将浮点数排序为自然数
- 使用javascript从字符串中提取浮点数
- 浮点数字问题JavaScript
- 为大型地理位置的坐标生成浮点数
- 如何使用Javascript使浮点数的精度相同
- 从字符串到浮点数的奇怪转换
- 如何将浮点数格式化为两位数
- 浮点数的总和在 JavaScript 中没有给出小数
- 如何使用 javascript 将浮点数格式化为十进制数(7)
- 如何通过 javascript 在浮点数中保留小数点数后的 2 位数字
- JavaScript正则表达式 - 用四舍五入的数字替换字符串中的所有浮点数
- 将数字 10 转换为 0.10 浮点数
- 用于返回括号内带有浮点数的数字的正则表达式
- 我怎样才能对浮点数进行四舍五入,使小数点后只有两个尾随数字
- 使用正/负整数和浮点数验证逗号分隔的数字
- 将 twitter-cldr-js 格式的数字解析回整数或浮点数
- 如何在 javascript 中解析包含数字/浮点数文本的字符串
- 将字符串转换为浮点数/数字用于javascript中的数值操作
- 检查数字是精确的浮点数 (INT) 还是实际浮点值
- 如何在Javascript中将一个带逗号的数字转换为浮点数