AntiClipSettings/qml/IpTextField.qml

43 lines
1.1 KiB
QML
Raw Normal View History

2024-08-21 16:03:49 +08:00
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
Column {
id: root
property alias text: input.text
property bool valid: false
property bool canEmpty: false
2024-08-21 16:03:49 +08:00
TextField {
height: 36
width: 350
id: input
onTextChanged: {
validate()
2024-08-21 16:03:49 +08:00
}
}
Text {
id: hint
color: "red"
font.pixelSize: 12
}
2024-08-22 10:48:28 +08:00
function reset() {
hint.text = ""
2024-08-21 16:03:49 +08:00
}
function validate() {
if (input.text.length <= 0) {
hint.text = root.canEmpty ? "" : "参数不能为空"
root.valid = root.canEmpty
return root.valid
}
var regex = /^(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])$/
root.valid = regex.test(input.text)
if (!root.valid) {
hint.text = "参数配置无效"
} else {
hint.text = ""
}
return root.valid
}
2024-08-21 16:03:49 +08:00
}