Skip to content

Commit bd8a32f

Browse files
MyLeeJiEunmhduiy
authored andcommitted
fix: use loose regex for IP and mask input
1. Add loose edit-time regex (ipEditRegExp, maskEditRegExp) that only allows digits and dots 2. Replace strict validators with loose ones on IP address, subnet mask, and gateway input fields 3. Allow users to type incomplete IP/mask values during editing without being blocked by validation Log: Use permissive input regex for IPv4 address and subnet mask fields fix: 使用宽松正则校验IP和子网掩码输入 1. 新增编辑时宽松正则(ipEditRegExp, maskEditRegExp),仅允许数字和点 2. 将IP地址、子网掩码和网关输入框的校验器替换为宽松正则 3. 允许用户在编辑过程中输入不完整的IP/掩码值,不被严格校验阻断 Log: IPv4地址和子网掩码输入框使用宽松正则校验 PMS: BUG-361211
1 parent 2233bfa commit bd8a32f

2 files changed

Lines changed: 8 additions & 4 deletions

File tree

dcc-network/qml/NetUtils.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
.pragma library
2-
// SPDX-FileCopyrightText: 2024 - 2027 UnionTech Software Technology Co., Ltd.
2+
// SPDX-FileCopyrightText: 2024 - 2026 UnionTech Software Technology Co., Ltd.
33
// SPDX-License-Identifier: GPL-3.0-or-later
44
const VpnTypeEnum = Object.freeze({
55
"l2tp": 0x01,
@@ -12,9 +12,13 @@ const VpnTypeEnum = Object.freeze({
1212
})
1313
// ip正则表达式
1414
const ipRegExp = /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))$/
15+
// ip编辑时宽松正则(仅允许数字和点)
16+
const ipEditRegExp = /^[0-9.]*$/
1517
const ipv6RegExp = /^(((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))))$/
1618
// 子网掩码
1719
const maskRegExp = /(254|252|248|240|224|192|128|0)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(254|252|248|240|224|192|128|0)/
20+
// 子网掩码编辑时宽松正则(仅允许数字和点)
21+
const maskEditRegExp = /^[0-9.]*$/
1822
// MAC正则表达式
1923
const macRegExp = /([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})/
2024

dcc-network/qml/SectionIPv4.qml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ DccObject {
340340
page: D.LineEdit {
341341
text: addressData.length > index ? addressData[index][0] : "0.0.0.0"
342342
validator: RegularExpressionValidator {
343-
regularExpression: NetUtils.ipRegExp
343+
regularExpression: NetUtils.ipEditRegExp
344344
}
345345
onTextChanged: {
346346
if (showAlert) {
@@ -372,7 +372,7 @@ DccObject {
372372
page: D.LineEdit {
373373
text: addressData.length > index ? addressData[index][1] : "255.255.255.0"
374374
validator: RegularExpressionValidator {
375-
regularExpression: NetUtils.maskRegExp
375+
regularExpression: NetUtils.maskEditRegExp
376376
}
377377
onTextChanged: {
378378
if (showAlert) {
@@ -404,7 +404,7 @@ DccObject {
404404
enabled: index === 0
405405
text: index === 0 && addressData.length > index ? addressData[index][2] : ""
406406
validator: RegularExpressionValidator {
407-
regularExpression: NetUtils.ipRegExp
407+
regularExpression: NetUtils.ipEditRegExp
408408
}
409409
onTextChanged: {
410410
if (showAlert) {

0 commit comments

Comments
 (0)