sách gpt4 ai đã đi

So khớp biểu thức chính quy float/int âm/dương - điều này có xấu không?

In lại 作者:行者123 更新时间:2023-12-02 18:06:33 30 4
mua khóa gpt4 Nike

我有这个正则表达式来测试用户输入是否有效:

value.length === 0 ||
value === '-' ||
(!isNaN(parseFloat(value)) && /^-?\d+\.?\d*$/.test(value))

要点在正则表达式中:/^-?\d+\.?\d*$/。然而,sonarcloud 认为它是一个安全热点,并表示:

确保此处使用的正则表达式(由于回溯而容易受到超线性运行时的影响)不会导致拒绝服务。

我猜这是因为两位数测试的原因,但我找不到办法避免它。它是安全威胁还是无害?

1 Câu trả lời

该警告是由两组数字之间的可选 . 引起的。这可能意味着正则表达式引擎将回溯以与 \d+ 匹配更少的数字,并与 \d* 匹配更多的数字,但总是得出相同的结论:它不匹配.

您可以通过以下方式避免这种情况:

^-?\d+(\.\d*)?$

这样,只有当存在分隔点时,\d* 模式才会发挥作用。这意味着相同的输入字符不可能被考虑用于 \d+ 模式,以及稍后(回溯之后)的 \d* 模式。

关于regex - 匹配负/正 float/int 正则表达式 - 这是邪恶的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73137567/

30 4 0
Bài viết được đề xuất: ubuntu - JSchException : Auth fail on Ubuntu 22. 04
Bài viết được đề xuất: ansible - 从hosts文件中获取主机名
Bài viết được đề xuất: asp.net - 模拟asp.net中的非域用户帐户
Bài viết được đề xuất: javascript - 带有双星号的正则表达式 javascript
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com