国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Javascript中查找不以XX字符結尾的單詞示例代碼

2024-05-06 15:53:10
字體:
來源:轉載
供稿:網友
我在寫這篇文章之前花了2個多小時在弄正則表達式,下為大家介紹下具體的實現思路,感興趣的朋友可以參考下

首先,讓我聲明一下,我在寫這篇文章之前花了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,完成了!

思則得,不思則不得。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 贵南县| 武陟县| 通海县| 永城市| 紫阳县| 清丰县| 永丰县| 昔阳县| 介休市| 中卫市| 湟源县| 高青县| 弥勒县| 电白县| 桃园市| 关岭| 庆元县| 杭锦旗| 枣强县| 达日县| 汾阳市| 温宿县| 永和县| 崇信县| 广饶县| 巴楚县| 棋牌| 涿鹿县| 汝阳县| 民勤县| 张家界市| 凌源市| 佳木斯市| 丹江口市| 新龙县| 广汉市| 乐清市| 呼伦贝尔市| 湘潭市| 易门县| 会宁县|