Javascript中查找不以XX字符結(jié)尾的單詞示例代碼
按照一般的思路,先來(lái)看看其他幾個(gè)插找方式: 我以字符串
var str = "eattd gebcat gedat jadu geat beu";
為例子。
1.以"ge"為開頭的,結(jié)果應(yīng)該是"gebcat, gedat, geat"。因?yàn)閱卧~以"ge"開頭,則我可以放入一個(gè)新的數(shù)組供以后使用。
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"結(jié)尾的單詞,結(jié)果為"gebcat","gedat","geat"。同樣,我可以放入數(shù)組。
var exp1 = /\w+(at\b)/ig;
3.不以"ge"開頭的單詞,我需要另外一個(gè)數(shù)組來(lái)存放。
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"結(jié)尾的的單詞,好,問(wèn)題來(lái)了。Javascript中的Regex比較弱,不支持逆環(huán)視否定,因此不能寫:
var exp1 = /\w+(?<!at\b)/ig;
而
var exp1 = /\w+(?!at\b)/ig;
的意思中單詞結(jié)尾的右邊不能為"at",那是不可能的,\b\w就是查找單詞邊界。我換一個(gè)角度來(lái)寫,找到以at結(jié)尾的,把該單詞從原來(lái)的字符串中刪除。然后放入一個(gè)新數(shù)組。
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,完成了!
思則得,不思則不得。
相關(guān)文章
js實(shí)現(xiàn)百度地圖定位于地址逆解析,顯示自己當(dāng)前的地理位置
本文分享了基于javascript實(shí)現(xiàn)的百度地圖定位于地址逆解析,顯示自己當(dāng)前的地理位置的實(shí)例代碼,有興趣的朋友可以看下2016-12-12js實(shí)現(xiàn)的GridView即表頭固定表體有滾動(dòng)條且可滾動(dòng)
實(shí)現(xiàn)GridView,表頭固定,表體有滾動(dòng)條且可滾動(dòng),下面有個(gè)不錯(cuò)的示例,希望對(duì)大家有所幫助2014-02-02令按鈕懸浮在(手機(jī))頁(yè)面底部的實(shí)現(xiàn)方法
下面小編就為大家?guī)?lái)一篇令按鈕懸浮在(手機(jī))頁(yè)面底部的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05BootStrap 動(dòng)態(tài)添加驗(yàn)證項(xiàng)和取消驗(yàn)證項(xiàng)的實(shí)現(xiàn)方法
這篇文章主要介紹了BootStrap 動(dòng)態(tài)添加驗(yàn)證項(xiàng)和取消驗(yàn)證項(xiàng)的實(shí)現(xiàn)方法的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09javascript制作照片墻及制作過(guò)程中出現(xiàn)的問(wèn)題
這篇文章主要介紹了javascript制作照片墻及制作過(guò)程中出現(xiàn)的問(wèn)題,感興趣的朋友可以參考一下2016-04-04使用JavaScript 實(shí)現(xiàn)的人臉檢測(cè)
這篇文章主要介紹了使用JavaScript 實(shí)現(xiàn)的人臉檢測(cè)的方法和實(shí)例,非常的不錯(cuò),這里推薦給大家,有需要的小伙伴參考下。2015-03-03javascript制作坦克大戰(zhàn)全紀(jì)錄(1)
本文寫作的目的是鞏固一下自己最近學(xué)習(xí)的js知識(shí), 這個(gè)教程適合熟悉js基本語(yǔ)法和面向?qū)ο笳Z(yǔ)法的小伙伴學(xué)習(xí)。由于自己也是剛學(xué)js不久,所以難免出現(xiàn)錯(cuò)誤。如果發(fā)現(xiàn)希望給予指正。2014-11-11javascript之水平橫向滾動(dòng)歌詞同步的應(yīng)用
javascript之水平橫向滾動(dòng)歌詞同步的應(yīng)用...2007-05-05