reg_action
function check_email($win)
{
$win = trim($win);
$reg = '/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/';
if (preg_match($reg, $win) == 1) return true;
return false;
}
<form action="" method="post" style="text-align: center ">
<input type="text" name="email_1117" placeholder="请输入您的email(必填)" style="margin:1em;" id="winput_email">
<input id="winput_email_check" style="border: 0 ;color: red;">
<input type="submit" name="add" value="追加" id="w_submit">
</form>
<script>
document.getElementById("winput_email").addEventListener("change", wonchange);
function wonchange() {
var w = document.getElementById("winput_email").value;
var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
console.log(reg.exec(w) !== null && reg.exec(w).index === 0)
if (reg.exec(w) !== null && reg.exec(w).index === 0) {
document.getElementById("winput_email_check").value = ''
document.getElementById("w_submit").style.display = 'inline';
} else {
winnerhtml = '请输入正确的email';
document.getElementById("winput_email_check").value = winnerhtml;
document.getElementById("w_submit").style.display = 'none';
}
}
</script>
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions
\w
匹配一个单字字符(字母、数字或者下划线)。
等价于[A-Za-z0-9_]。
例如, /\w/ 匹配 "apple," 中的 'a',"$5.28,"中的 '5' 和 "3D." 中的 '3'。
+
匹配前面一个表达式1次或者多次。等价于 {1,}。
例如,/a+/匹配了在 "candy" 中的 'a',和在 "caaaaaaandy" 中所有的 'a'。
*
匹配前一个表达式0次或多次。等价于 {0,}。
例如,/bo*/会匹配 "A ghost boooooed" 中的 'booooo' 和 "A bird warbled" 中的 'b',但是在 "A goat grunted" 中将不会匹配任何东西。
http://wiki.ubuntu.org.cn/Python%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F%E6%93%8D%E4%BD%9C%E6%8C%87%E5%8D%97
re.compile('\d+').search('按时打卡的23423') is None
{'words': '大型\t雕铣机\t哪个\t牌子\t好\t?', 'postags': 'b\tn\tr\tn\ta\twp', 'parser': '2:ATT\t4:ATT\t4:ATT\t5:SBV\t0:HED\t5:WP', 'netags': 'O\tO\tO\tO\tO\tO', 'role': [{4: 'A0:(0,3)'}]}
feature ATT SBV HED 相邻
re.compile('ATT\\t\d+:SBV\\t\d+:HED\\t\d+').search( '2:ATT\t4:ATT\t4:ATT\t5:SBV\t0:HED\t5:WP') is None
或 (a|b)
re.compile('HED\\t\d+:VOB\\t\d+:(WP|ADV\\t\d+:CMP)').search('3:ATT\t3:ATT\t4:SBV\t0:HED\t4:VOB\t7:ADV\t4:CMP\t4:WP') is not None
reg_action的更多相关文章
- Web jsp开发学习——Servlet提交表单时用法
实现提交表单以后判断输入的信息是否符合条件 若符合条件 先新建servlet Sevlet的两种声明方式,二选一即可 再到web.xml里注册 register.jsp就是表单的界 ...
随机推荐
- Brackets - 前端编辑器推荐
Brackets是一款基于web(html+css+js)开发的web前端编辑器.它有许多普通编辑器难以实现的功能,是web前端开发者的神器. 戳我去下载 其功能如下: 1.快速编辑 将光标定在颜色上 ...
- Adreno Profiler连接安卓手机profile第三方app渲染过程
1,下载Android SDK,adb在Android SDK/platform-tools下. 2,添加adb环境变量:http://www.cnblogs.com/xwlyun/archive/2 ...
- zookeeper(四):核心原理(Watcher、事件和状态)
zookeeper主要是为了统一分布式系统中各个节点的工作状态,在资源冲突的情况下协调提供节点资源抢占,提供给每个节点了解整个集群所处状态的途径.这一切的实现都依赖于zookeeper中的事件监听和通 ...
- void *指针的加减运算
1.手工写了一个程序验证void *指针加减运算移动几个字节: //本程序验证空类型指针减1移动几个字节 #include <stdio.h> int main(int argc, cha ...
- JS面试题目
哪些地方会出现css阻塞,哪些地方会出现js阻塞? js的阻塞特性: 所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等.直到JS下载.解析.执行完毕后才开始继续并行下 ...
- python django中使用sqlite3数据库 存储二进制数据ByteArray
在python中使用sqlite3数据库存储二进制流数据ByteArray,在django使用sqlite3数据库时,有时候也要注意最好使用二进制流ByteArray插入字符串. 使用ByteArra ...
- go context 讲解
控制并发有两种经典的方式,一种是WaitGroup,另外一种就是Context,今天我就谈谈Context. 什么是WaitGroup WaitGroup以前我们在并发的时候介绍过,它是一种控制并发的 ...
- EMMC与nand flash的区别
1.NAND Flash 是一种存储介质,要在上面读写数据,外部要加主控和电路设计. 2.eMMC是NAND flash+主控IC ,对外的接口协议与SD.TF卡类似:对厂家而言简化了电路设计,降低了 ...
- C++ 4种强制类型转换
C++的四种强制类型转换为:static_cast.const_cast.reinterpret_cast和dynamic_cast 类型转换的一般形式:cast-name(expression); ...
- YUV转为RGB24及IplImage格式(I420和YV12)及Java版实现
http://blog.csdn.net/xy365/article/details/18735849 ———————————————————————————————————————————————— ...