最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

JavaScript正则表达式匹配:不包含某字符或字符串

互联网 admin 0浏览 0评论

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/#");

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/#");

与本文相关的文章

发布评论

评论列表 (0)

  1. 暂无评论