用正则表达式限制 输入必须为数字或字母,长度只能为4~6位

限制 输入必须为数字或字母,长度只能为4~6位


一般写法:


  //用户代码必须为数字或字母,只能为4~6位
	  if (!(trim(userIdField.value).length >=4 && trim(userIdField.value).length >=6)){
	  	alert("用户代码只能为4~6位");
	  	userIdField.focus();
	  	return;
	  }
	  //用户代码必须为数字和字母
	  for ( var i = 0 ; trim(userIdField.value).length; i++ ){
	  	var c = trim(userIdField.value).length.charAt(i);
	  	if ( !((c >= 'a' && c <= 'z') || (c >= '0' && c <= '9') || (c >= 'A' && c <= 'Z'))){
	  		alert("用户代码必须为数字或字母");
	  		userIdField.focus();
	  		return;
	  	}
	  }


用正则表达式可以简化一些计算


//用正则表达式限制 输入必须为数字或字母,长度只能为4~6位
	  
	  var re = new RegExp(/^[a-zA-Z0-9] {4,6}$/);       // ^表示开始  $表示结束
	  if (!re.test(trim(userIdField.value))){
	  		alert("用户代码必须为数字或字母,只能为4~6位!");
	  		userIdField.focus();
	  		return;
	  }


正则表达式其他用法可以参考 http://www.cnblogs.com/zxin/archive/2013/01/26/2877765.html



在QLineEdit中,你可以使用`setValidator()`函数结合`QRegExpValidator`来实现这种正则表达式输入限制。首先,你需要创建一个正则表达式,该正则表达式应该匹配包含字母(大小写)、数字以及长度在5到32之间的字符串。以下是一个简单的示例: ```python import re from PyQt5.QtWidgets import QLineEdit, QVBoxLayout, QApplication, QWidget from PyQt5.QtGui import QRegExpValidator class RegExInputWidget(QWidget): def __init__(self): super().__init__() self.line_edit = QLineEdit() self.init_ui() def init_ui(self): # 创建正则表达式:^[a-zA-Z0-9]{5,32}$ regex_pattern = r"^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{5,32}$" validator = QRegExpValidator(QRegExp(regex_pattern), self) self.line_edit.setValidator(validator) layout = QVBoxLayout() layout.addWidget(self.line_edit) self.setLayout(layout) self.line_edit.textChanged.connect(self.check_input) # 监听文本变化 def check_input(self): text = self.line_edit.text() if not self.line_edit.validator().validate(text, -1): # 如果验证失败,则显示错误提示 print(f"Invalid input: {text}") self.line_edit.setStyleSheet("border: 1px solid red;") # 添加红色边框作为视觉反馈 else: self.line_edit.setStyleSheet("") # 清除错误状态 if __name__ == "__main__": app = QApplication([]) widget = RegExInputWidget() widget.show() app.exec_() ``` 在这个例子中,当用户在`QLineEdit`中输入内容时,`check_input`函数会被触发,如果输入不符合正则表达式,就会更改边框颜色并打印错误信息。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值