JavaScript正则表达式匹配:不包含某字符或字符串
JavaScript正则表达式匹配:不包含某字符或字符串
匹配不包含问号的字符串,采用如下正则表达式:
/^[^\?]*$/
其中:
^是开头,$是结尾
^是非
\? 问号转义
*允许空值
const pattern1 = /\?/; //包含问号
const pattern2 = /^((?!\?).)+$/; //不包含问号,但是有bug,不知道为什么
const pattern3 = /^[^\?]*$/; //不包含问号,允许空值,这种是可以的
pattern2,在编辑器里试了没问题,但是放到代码里,会出错,每按键一次(增加/删去一个字符),都会使validator改变,从true到false,从false到true,来回变,有没有大佬知道为什么呀?
<head>
<script>
function myFunction(){
var x=document.getElementById("fname");
const pattern = /^((?!\?).)+$/;
console.log(pattern.test(x.value))
}
</script>
</head>
<body>
<input id="fname" onKeyUp="myFunction()">
</body>
不包含某字符串(如“hit”)需要特殊处理,不然他会把字母都拆开,去分别判断“h”、“i”、“t”,
/^.*hit.*$/
/^((?!hit).)*$/
应用:比如想把history模式的路由改为哈希模式,在/hit/后面加#,
就可以这样来替换x=x.replace(/\/hit\//gi, "/hit/#");
最新文章
- KMP算法图文详解(为什么是next[0]=
- 选择代码覆盖工具的 10 个标准
- 什么是NFS服务器
- Using System.Messaging引用报错解决办法
- 【数字图像处理】图像的数学变换之傅里叶变换
- http状态码(204,304, 404, 504,502)
- 潜在狄利克雷分配(LDA)(latent Dirichlet allocation)
- 数据结构
- module.exports 与 exports.xxx 的区别
- mysql error 1142
- 英语单词积累8.10
- 多版本中文停用词词表 + 多版本英文停用词词表 + python词表合并程序
- 毕业设计
- 计算机视觉方面相关项目,『哈尔滨985211大学科研营』计算机视觉项目
- 基于Redis的消息中心缓存搭建
- PTA解题
- 数据库的升序降序排列
- 71个外贸工具集合!2023年外贸业务员开发客户必备!
- MySQL
- 声纹识别中pooling总结