IP正则

本文介绍了一种使用正则表达式验证IP地址的方法,并通过将合法的IP地址转换为数字形式来去除多余的零,同时保持原有的IP格式不变。文章详细展示了如何在用户输入过程中实时检查IP地址的有效性,并在发现问题时提供即时反馈。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

    QRegExp RegExp("^((25[0-5])|(2[0-4]\\d)|(1\\d\\d)|([1-9]\\d)|\\d)");
    QStringList StringSplit = StringLine.split(".");
    int count =0;
    bool Adopt=true;
    auto StringInterator = StringSplit.begin();
    int CursorPosition = ui->lineEdit->cursorPosition();

    while(StringInterator != StringSplit.end())
    {
        count++;
        if(!RegExp.exactMatch(*StringInterator++))
        {
            Adopt = false;
            continue;
        }
    }

    if(Adopt&&(4==count))
    {
        QString StrtoInt;
        QString *TmpString;
        for(int i=0;i<4;i++)
        {
            TmpString = new QString(StringSplit.at(i));
            StrtoInt+=QString::number(TmpString->toInt(&Adopt,10));
            delete TmpString;
            StrtoInt+=i<3?".":"";
        }
        ui->lineEdit->setText(StrtoInt);
        m_ipString = StrtoInt;
    }
    else
    {
        CursorPosition--;
        ui->lineEdit->setText(m_ipString);
    }
    ui->lineEdit->setCursorPosition(CursorPosition);


基本思想:
记录光标位置
把原有字符串以  "."  拆分
利用正则表达式对拆分后字符串对比
如果4个字符串都是true
把拆分后的字符串转换为数字[去零]
每个字符串后面都加上  "."
记录下当前正确IP
输出IP
否则
光标位置前移一位
输出正确的IP
调正光标至原来位置


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼游戏开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值