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 类的定义和引用 JavaScript高级培训 自定义对象
Apr 27 Javascript
JavaScript编程开发中的五个实用小技巧
Jul 22 Javascript
jquery中使用$(#form).submit()重写提交表单无效原因分析及解决
Mar 25 Javascript
裁剪字符串trim()自定义改进版
Apr 10 Javascript
原生js做的手风琴效果的导航菜单
Nov 08 Javascript
jquery中子元素和后代元素的区别示例介绍
Apr 02 Javascript
JavaScript和jquery获取父级元素、子级元素、兄弟元素的方法
Jun 05 Javascript
基于JavaScript实现点击页面任何位置返回
Aug 31 Javascript
微信小程序实战之自定义模态弹窗(8)
Apr 18 Javascript
温故知新——JavaScript中的字符串连接问题最全总结(推荐)
Aug 21 Javascript
DVA框架统一处理所有页面的loading状态
Aug 25 Javascript
vue中keep-alive组件的入门使用教程
Jun 06 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实现文件下载更能介绍
2012/11/23 PHP
基于PHP生成静态页的实现方法
2013/05/10 PHP
php伪静态之APACHE篇
2014/06/02 PHP
phpStudy配置多站点多域名和多端口的方法
2017/09/01 PHP
javascript写的日历类(基于pj)
2010/12/28 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
2012/12/30 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
javascript实现全角半角检测的方法
2015/07/23 Javascript
jquery读写cookie操作实例分析
2015/12/24 Javascript
JS组件系列之MVVM组件 vue 30分钟搞定前端增删改查
2017/04/28 Javascript
javascript简单链式调用案例分析
2017/05/10 Javascript
JavaScript获取移动设备型号的实现代码(JS获取手机型号和系统)
2018/03/10 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
JS实现仿微信支付弹窗功能
2018/06/25 Javascript
vue展示dicom文件医疗系统的实现代码
2018/08/27 Javascript
vue实现的双向数据绑定操作示例
2018/12/04 Javascript
bootstrap-table实现表头固定以及列固定的方法示例
2019/03/07 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
Vue发布项目实例讲解
2019/07/17 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
JS 设计模式之:工厂模式定义与实现方法浅析
2020/05/06 Javascript
JavaScript实现滑块验证解锁
2021/01/07 Javascript
[14:00]DOTA2国际邀请赛史上最长大战 赛后专访B神
2013/08/10 DOTA
Python实现自定义函数的5种常见形式分析
2018/06/16 Python
Python函数定义及传参方式详解(4种)
2019/03/18 Python
python实现连连看游戏
2020/02/14 Python
Python3.8安装Pygame教程步骤详解
2020/08/14 Python
python speech模块的使用方法
2020/09/09 Python
HTML5 Canvas之测试浏览器是否支持Canvas的方法
2015/01/01 HTML / CSS
ASICS印度官方网站:日本专业运动品牌
2020/06/20 全球购物
Herschel Supply Co.美国:背包、手提袋及配件
2020/11/24 全球购物
以思科路由器为例你写下单臂路由的配置命令
2013/08/03 面试题
如何开发一个JQuery插件
2016/07/28 面试题
合作意向书格式及范文
2014/03/31 职场文书
幼儿园小班家长寄语
2014/04/02 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android