QSring字符串内容的过滤筛选
QString类函数contains()用于判断字符串中是否含有某些字符,其有两个重载函数,第一个是简单筛选,第二个是使用“正则表达式”(之后有解释)进行筛选,两函数原型为:
- bool QString::contains(const QString & str, Qt::CaseSensitivity cs = Qt::CaseSensitive) const
- bool QString::contains(QRegExp & rx) const
函数释义
- 字符串中是否含有str,枚举CaseSensitivity用于设定是否区分大小写,返回布尔值判断结果。
- 使用正则表达式进行筛选,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)
函数释义
-
参数类型QValidator是QRegExpValidator的基类,而QRegExpValidator的构造函数的形参使用的正是QRegExp类型,故此函数的使用方法已显而易见。