IP正则

    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
调正光标至原来位置


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

小鱼游戏开发

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

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

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

打赏作者

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

抵扣说明:

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

余额充值