js 中判断js 字符串包含判断不包含的正则表达式怎么写

js 正则表达式学习笔记之匹配字符串
字体:[ ] 类型:转载 时间:
这篇文章主要介绍了js 正则表达式匹配字符串,需要的朋友可以参考下
今天看了第5章几个例子,有点收获,记录下来当作回顾也当作分享。
关于匹配字符串问题,有很多种类型,今天讨论 js 代码里的字符串匹配。(因为我想学完之后写个语法高亮练手,所以用js代码当作例子)
代码如下:var str1 = "我是字符串1哦,快把我取走", str2 = "我是字符串2哦,快把我取走";
比如这样一个字符串,匹配起来很简单 /"[^"]*"/g 即可。
PS: 白色截图是 chrome 34 控制台中运行的结果,深灰色是 sublime text 结果。
很容易就取到内容了,可是亲,你有没有想过,js字符串里允许转义。
代码如下:var str1 = "我是字符串1哦,\"快把我取走\"", str2 = "我是字符串2哦,\"快把我取走\"";
这不是我们想要的结果,所以我们要处理下转义问题。转义的规则是 \ 后面跟着一个字符,所以我们用 \\. 去匹配它,就有了这样的正则 /"(?:\\.|[^"])*"/g
&可能对于正则不熟悉的朋友,一下子从 /"[^"]*"/g 变到 /"(?:\\.|[^"])*"/g 后理解不了,我简单说明下。(?:) 是非捕获组,就是不会把内容抓取保存到内存里的。\\. 用于匹配 \" \' \a 之类的转义字符,匹配成功的话消耗2个字符。[^"] 匹配除了 " 以外的所有字符,匹配成功的话消耗1个字符。所以这个表达式的意思是,先匹配 \. 这样转义,如果成功会消耗掉正确的转义,如果不成功就用 [^"] 匹配。
消耗掉正确的转义的意思是,比如 "aa\\aa\"aa\ufffaa" 都会被正常匹配,因为这些都在正常的转义。形如 "aa\\aa\"aa\ufff\\"aa" 这里的 \\" 其中 \\ 会被匹配,而 " 既不满足 \\. 也不满足 [^"]所以这个匹配结果会是 "aa\\aa\"aa\ufff\\" 后面的 aa" 无法匹配到。
所以现在我们得到了比较强力的正则,可以有效的匹配 js 代码中的字符串了。
骚等,好像还有哪里不对。js 字符串允许折行,形如这样:
代码如下:var str = "大家好\我是js";
但是这样的字符串用刚才的正则能匹配么?答案是能。因为 \ 不能被 \\. 匹配,但是可以被 [^"] 匹配到,\ 后面一个字符是 \r, \n 或 \r\n (具体是什么换行符要看系统了) 都能被 [^"] 匹配到,所以我们无意间写了个强力的表达式。
现在剩下最后一个问题了,就是 ' 的匹配。我们修改下表达式 /"(?:\\.|[^"])*"|'(?:\\.|[^'])*'/g 就好了。
来测试一下:
代码如下:var str1 = "我是字符串1哦,\\"快把我取走\"", str2 = '我是字符串2哦,\\'快把我取走\'';
匹配成功。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具& & & & 复制代码代码如下:& & function stripscript(s)& & {& & var pattern = new RegExp("[`~!@#$^&*()=|{}':;',\\[\\]./?~!@#¥……&*()——|{}【】‘;:”“'。,、?]")& & var rs = "";& & for (var i = 0; i < s. i++) {& & rs = rs+s.substr(i, 1).replace(pattern, '');& & }& && & }& & 校验所有输入域是否含有特殊符号& & 复制代码代码如下:& & /**& & * 校验所有输入域是否含有特殊符号& & * 所要过滤的符号写入正则表达式中,注意,一些符号要用'\'转义.& & * 试例:& & * if(checkAllTextValid(document.forms[0]))& & * alert("表单中所有文本框通过校验!");& & */& & function checkAllTextValid(form)& & {& & //记录不含引号的文本框数量& & var resultTag = 0;& & //记录所有text文本框数量& & var flag = 0;& & for(var i = 0; i < form.elements. i ++)& & {& & if(form.elements[i].type=="text")& & {& & flag = flag + 1;& & //此处填写所要过滤的特殊符号& & //注意:修改####处的字符,其它部分不许修改.& & //if(/^[^####]*$/.test(form.elements[i].value))& & if(/^[^\|"']*$/.test(form.elements[i].value))& & resultTag = resultTag+1;& & else& & form.elements[i].select();& & }& & }& & /**& & * 如果含引号的文本框等于全部文本框的值,则校验通过& & */& & if(resultTag == flag)& && & else& & {& & alert("文本框中不能含有\n\n 1 单引号: ' \n 2 双引号: \" \n 3 竖 杠: | \n 4 尖角号:
\n\n请检查输入!");& && & }& & }& & 您可能感兴趣的文章:JS过滤url参数特殊字符的实现方法过虑特殊字符输入的js代码js特殊字符过滤的示例代码& & QQ空间
百度搜藏更多& & Tags:过滤 特殊字符& & 复制链接收藏本文打印本文关闭本文返回首页& & 上一篇:你不一定知道的关于JavaScript的正则表达式& & 下一篇:正则替换换行符和把 br 替换成换行符& & 相关文章正则表达式常用元字符整理小结asp下替换非数字为空的正则JScript中正则表达式用法详解正则中需要转义的特殊字符小结python 正则表达式 反斜杠(/)的麻烦和陷阱正则表达式 传智播客学习正则表达式详述第一部正则基础之 NFA引擎匹配原理正则表达式概述 什么是正则表达式 .PHP 正则 email语句详解& & 文章评论& & 最 近 更 新& & 正则表达式详述第一部正则表达式话题Js 小数验证函数代码(基于正则)asp的ubb函数(推荐)javascript用正则表达式把替换js正则表达式讲解之index属性(RegExp对象8个你应该了解的正则表达式提高你的工作效js取得参数代码去除段首段尾的 和全角的空格的正则自定义ubb代码,preg_replace()函数的一些& & 热 点 排 行& & Java 正则表达式详解javascript. 手机号码正则表达式验最常用的PHP正则表达式收集整理js 常用正则表达式表单验证代码js正则函数match、exec、test、s正则表达式匹配任意字符(包括换grep用法详解 grep与正则表达式Oracle正则表达式使用介绍javascript判断中文的正则js中过滤特殊字符的正则表达式
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
论文写作技巧js正则表达式不包含某些连续的字符串 - 博客频道 - CSDN.NET
lucky star的专栏
Good good study,day day up!
分类:前端
&SCRIPT LANGUAGE=&JavaScript&&
// input里面不允许包含:初中、中学、初级中学这三个词语
var input = &C
初a中,,,高a中
初级中学&;
var r = /(?!.*初中|.*中学|.*初级中学)^.*$/;
alert(r.test(input));
排名:第4296名
(1)(89)(65)(5)(7)(6)(2)(39)(33)(2)(2)(2)(1)(1)(1)(1)(6)(1)(1)(2)(1)(2)(14)(21)(3)(6)(1)(2)(1)(1)(6)(2)(1)(1)(6)(2)(1)(1)(1)(2)(6)(4)(1)(6)javascript中正则表达式判断一个字符串是否同时含有大小写字母和数字如题,正则表达式怎样写?
if (/[a-z]/.test(str)&& /[A-Z]/.test(str)&& /[0-9]/.test(str)){// 你的代码}
alert(/[\d\w]/.test(str));
为您推荐:
扫描下载二维码

我要回帖

更多关于 正则表达式判断字符串 的文章

 

随机推荐