Qt检查有效URL

Qt check for valid URL

本文关键字:URL 有效 检查 Qt      更新时间:2023-10-16

我正在尝试创建一个Qt应用程序,用于检查用户在文本编辑中输入的URL是否有效。

这就是我到目前为止所拥有的,但它只说输入的URL是有效的,即使我输入了一个无效的URL。

bool checkUrl(const QUrl &url) {
    if (!url.isValid()) {
        //qDebug(QString("Invalid URL: %1").arg(url.toString()));
        return false;
    }
    return true;
}
void MainWindow::on_pushButton_clicked()
{
    QString usertext = ui->plainTextEdit->toPlainText();
    QUrl url = QUrl::fromUserInput(usertext);
    if (checkUrl(url))
        ui->textEdit->setPlainText("Valid URL.");
    else
        ui->textEdit->setPlainText("Invalid URL.");
}

同样在qDebug行上有一个错误:

/home/user/HTML/mainwindow.cpp:32: error: no matching function for call to ‘qDebug(QString)’

有人知道问题出在哪里吗?

您应该像这样使用qDebug

qDebug() << QString("Invalid URL: %1").arg(url.toString());

还要注意,QUrl::isValid()不检查url的语法。您可能希望使用正则表达式来验证url。

QUrl::isValid()基本上只检查字符编码是否正确。你认为什么是错误的网址?

关于qDebug,您使用的表单基本上封装了printf,因此它不适用于QString。你想做的事:

qDebug() << QString("Invalid URL: %1").arg(url.toString());