QT笔记- 对QSring字符串内容进行过滤筛选或对QLineEdi的可输入内容进行控制,使其不含某些字符、只含某些字符或只含特定格式的字符串,如只含字母数字和下划线

QSring字符串内容的过滤筛选

QString类函数contains()用于判断字符串中是否含有某些字符,其有两个重载函数,第一个是简单筛选,第二个是使用“正则表达式”(之后有解释)进行筛选,两函数原型为:

  • bool QString::contains(const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
  • bool QString::contains(QRegExp & rx) const

函数释义

  1. 字符串中是否含有str,枚举CaseSensitivity用于设定是否区分大小写,返回布尔值判断结果。
  2. 使用正则表达式进行筛选,Qt处理正则表达式的类是QRegExp。返回布尔值判断结果。

正则表达式

例如

QRegExp regexp("^[A-Za-z]+$");

其中用引号括起来的内容就是正则表达式代码,这里“^[A-Za-z]+$”表示只含字母。

如下函数中的代码表示要判断的字符串中是否只含有数字、字母或下划线

void WizardPage3::_name(const QString & nstr)
{
    bool is = nstr.contains(QRegExp("^[0-9a-zA-Z_]{1,}$"));
    if(is)
        cout << "yes" << endl;
    else
        cout << "no" << endl;
}

事实上我们不必在乎正则表达式代码如何书写,因为它在这里的使用很简单,无非就是用于类QRegExp的初始化。我们只需收藏一些常用的正则表达式代码即可:https://www.cnblogs.com/zhangjianbing/p/7538178.html

对QLineEdi可输入内容的控制

使用QLineEdi类函数setValidator()进行设置即可,该函数可设定输入框只能输入什么字符,其原型如下:

  • void QLineEdit::setValidator(const QValidator  *  v)

函数释义

  1. 参数类型QValidatorQRegExpValidator的基类,而QRegExpValidator的构造函数的形参使用的正是QRegExp类型,故此函数的使用方法已显而易见。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值