Javascript中查找不以XX字符结尾的单词示例代码


Posted in Javascript onOctober 15, 2013

首先,让我声明一下,我在写这篇文章之前花了2个多小时在弄正则表达式。悲~悲~悲~

按照一般的思路,先来看看其他几个插找方式: 我以字符串

var str = "eattd gebcat gedat jadu geat beu";

?槔?印

1.以"ge"?榭?返模?峁?Ω檬?gebcat, gedat, geat"。因?榈ゴ室?ge"开头,则我可以放入一个新的数组供以后使用。

var exp1 = /\bge\w+/ig; var matchedStr = exp1.exec(str); 
while (matchedStr != null && matchedStr.index < str.length) { 
if (matchedStr[0] != null) { 
inv.innerHTML += "<br>The result is: " + matchedStr[0]; 
//newStr = newStr.replace(matchedStr[0]); 
wordsArr.push(matchedStr[0]); 
} 
matchedStr = exp1.exec(str); 
}

2.以"at"结尾的单词,结果??gebcat","gedat","geat"。同样,我可以放入数组。
var exp1 = /\w+(at\b)/ig;

3.不以"ge"开头的单词,我需要另外一个数组来存放。
var exp1 = /\b(?!ge)\w+/ig; 
var wordsArr = new Array(); 
var matchedStr = exp1.exec(str); while (matchedStr != null && matchedStr.index < str.length) { 
if (matchedStr[0] != null) { 
inv.innerHTML += "<br>The result is: " + matchedStr[0]; 
newStr = newStr.replace(matchedStr[0]); 
wordsArr.push(matchedStr[0]); 
} 
matchedStr = exp1.exec(str); 
} 
//wordsArr = newStr.split(" "); 
for (var i = 0; i < wordsArr.length;) { 
if (wordsArr[i] == "undefined") { 
wordsArr.splice(i,1); 
} else 
i++ 
}

4. 不以"at"结尾的的单词,好,问题来了。Javascript中的Regex比较弱,不支持逆环视否定,因此不能写:
var exp1 = /\w+(?<!at\b)/ig;


var exp1 = /\w+(?!at\b)/ig;

的意思中单词结尾的右边不能??at",那是不可能的,\b\w就是查找单词边界。我换一个角度来写,找到以at结尾的,把该单词从原来的字符串中删除。然后放入一个新数组。
function RegularExpTest() { 
var inv = document.getElementById("RegexTest"); 
var str = "eattd gedbcat gedat jadu geat beu"; 
var newStr = str; 
var exp1 = /\w+at\b/ig; 
var wordsArr = new Array(); 
var matchedStr = exp1.exec(str); while (matchedStr != null && matchedStr.index < str.length) { 
if (matchedStr[0] != null) { 
inv.innerHTML += "<br>The result is: " + matchedStr[0]; 
newStr = newStr.replace(matchedStr[0]); 
} 
matchedStr = exp1.exec(str); 
} 
wordsArr = newStr.split(" "); 
for (var i = 0; i < wordsArr.length;) { 
if (wordsArr[i] == "undefined") { 
wordsArr.splice(i,1); 
} else 
i++ 
} 
inv.innerHTML += "<br>The result is: " + wordsArr; 
}

OK,完成了!

思则得,不思则不得。

Javascript 相关文章推荐
用Javascript实现锚点(Anchor)间平滑跳转
Sep 08 Javascript
escape编码与unescape解码汉字出现乱码的解决方法
Jul 02 Javascript
jQuery+css实现的蓝色水平二级导航菜单效果代码
Sep 11 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
AngularJS报错$apply already in progress的解决方法分析
Jan 30 Javascript
Bootstrap 3 进度条的实现
Feb 22 Javascript
基于zepto.js实现手机相册功能
Jul 11 Javascript
微信小程序实现topBar底部选择栏效果
Jul 20 Javascript
three.js实现炫酷的全景3D重力感应
Dec 30 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
Aug 23 Javascript
layui上传图片到服务器的非项目目录下的方法
Sep 26 Javascript
Vue3不支持Filters过滤器的问题
Sep 24 Javascript
通过js获取div的background-image属性
Oct 15 #Javascript
js日期相关函数总结分享
Oct 15 #Javascript
JavaScript的继承的封装介绍
Oct 15 #Javascript
jquery实现兼容浏览器的图片上传本地预览功能
Oct 14 #Javascript
js 距离某一时间点时间是多少实现代码
Oct 14 #Javascript
js算法中的排序、数组去重详细概述
Oct 14 #Javascript
鼠标拖动实现DIV排序示例代码
Oct 14 #Javascript
You might like
PHP控制反转(IOC)和依赖注入(DI)
2017/03/13 PHP
thinkphp5引入公共部分header、footer的方法详解
2018/09/14 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
在textarea中屏蔽js的某个function的javascript代码
2007/04/20 Javascript
用js实现下载远程文件并保存在本地的脚本
2008/05/06 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
二叉树的非递归后序遍历算法实例详解
2014/02/07 Javascript
jquery实现的鼠标下拉滚动置顶效果
2014/07/24 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
基于jQuery实现Tabs选项卡自定义插件
2016/11/21 Javascript
JavaScript正则表达式exec/g实现多次循环用法示例
2017/01/17 Javascript
javascript history对象详解
2017/02/09 Javascript
ES6中Array.copyWithin()函数的用法实例详解
2017/09/16 Javascript
浅谈Angular6的服务和依赖注入
2018/06/27 Javascript
详解使用React制作一个模态框
2019/03/14 Javascript
Vue+Element实现表格编辑、删除、以及新增行的最优方法
2019/05/28 Javascript
Electron + vue 打包桌面操作流程详解
2019/06/24 Javascript
Vue项目页面跳转时浏览器窗口上方显示进度条功能
2020/03/26 Javascript
[30:51]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#1Liquid VS MVP.Phx第一局
2016/03/04 DOTA
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
在Python的while循环中使用else以及循环嵌套的用法
2015/10/14 Python
Python初学者需要注意的事项小结(python2与python3)
2018/09/26 Python
Python类的继承用法示例
2019/01/31 Python
基于python3实现倒叙字符串
2020/02/18 Python
Django查询优化及ajax编码格式原理解析
2020/03/25 Python
python爬虫scrapy图书分类实例讲解
2020/11/23 Python
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
医学毕业生自荐信
2013/10/11 职场文书
给校长的建议书600字
2014/05/15 职场文书
莫言诺贝尔获奖演讲稿
2014/05/21 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
付款证明模板
2015/06/19 职场文书
投诉信范文
2015/07/02 职场文书
python使用XPath解析数据爬取起点小说网数据
2021/04/22 Python
Windows Server 版本 20H2 于 8 月 9 日停止支持,Win10 版本 21H1 将于 12 月结束支
2022/07/23 数码科技