在JavaScript中,我们可以使用正则表达式来解析字符串中的合法数字。下面是一个例子,使用的是"非贪婪"(惰性)匹配模式(?),这样它将尝试匹配尽可能少的字符。
```javascript
function extractNumbers(str) {
const matches = str.match(/\d+(?=([^\d]*\d))|(\d+(\.\d+)?)/g);
return matches ? matches.map(Number) : [];
}
console.log(extractNumbers("hello123world456")); // 输出: [123, 456]
```
js正则表达式判断数字这个正则表达式的意思是:匹配尽可能少的数字,后面跟着尽可能少的非数字字符,然后再匹配一个或多个数字(这可以是小数)。这可以防止匹配到像"1234"这样的字符串,因为它后面没有非数字字符,所以不会匹配到"234"。
如果你希望解析字符串中的所有合法数字,不论其后面是否跟着其他字符,你可以使用贪婪匹配模式(*)而不是惰性匹配模式(?)。例如:
```javascript
function extractNumbers(str) {
const matches = str.match(/\d+(\.\d+)?/g);
return matches ? matches.map(Number) : [];
}
console.log(extractNumbers("hello123world456")); // 输出: [123, '123', '456']
```
这个正则表达式会匹配所有连续的数字和小数。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论