ホームページ > ウェブフロントエンド > jsチュートリアル > Javascript_javascript ヒントで XX 文字で終わらない単語を検索するサンプル コード

Javascript_javascript ヒントで XX 文字で終わらない単語を検索するサンプル コード

WBOY
リリース: 2016-05-16 17:20:09
オリジナル
1616 人が閲覧しました

まず最初に断っておきますが、この記事を書く前に正規表現をいじるのに 2 時間以上費やしました。悲しい~悲しい~悲しい~

一般的な考え方に従って、他のいくつかの挿入方法を見てみましょう: 私は文字列

を使用します コードをコピーします コードは次のとおりです。

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

は例です。

1. 「ge」で始まる場合、結果は「gebcat、gedat、geat」になります。単語が「ge」で始まるため、後で使用するために新しい配列を入れることができます。
コードをコピーします コードは次のとおりです。

var exp1 = /bgew /ig; 🎜>
var matchedStr = exp1.exec(str);

while (matchedStr != null && matchedStr.index < str.length) {
if (matchedStr[0] != null ) {
inv.innerHTML = "
結果は次のようになります: " matchedStr[0];
//newStr = newStr.replace(matchedStr[0]);
wordsArr.push(matchedStr[ 0]) ;
}
matchedStr = exp1.exec(str);


2. 「at」で終わる単語の場合、結果は「gebcat」になります。 「ゲダッ」、「ゲッ」。同様に、配列を入れることもできます。


コードをコピーします コードは次のとおりです:
var exp1 = /w (atb)/ 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 = "
結果は次のようになります: " matchedStr[0];
newStr = newStr.replace(matchedStr[0] ]);
wordsArr.push(matchedStr[0]);
matchedStr = exp1.exec(str);

//wordsArr = newStr.split( " ") ;

for (var i = 0; i if (wordsArr[i] == "未定義") {
wordsArr.splice(i) ,1) ;
} else
i
}


4. 「at」で終わらない単語 さて、ここで問題が発生します。 Javascript の正規表現は比較的弱く、逆引き否定をサポートしていないため、次のように記述することはできません。



コードをコピー
および



コードをコピー
コードは次のとおりです: var exp1 = /w (?!atb)/ig;
の右側
の意味での単語の終わりは "at" にすることはできません。つまり、単語の境界を見つけることは不可能です。別の角度から書いて、at で終わる単語を見つけて、元の文字列からその単語を削除します。次に、新しい配列を入れます。



コードをコピー
コードは次のとおりです。 function RegularExpTest() { var inv = document .getElementById("RegexTest");
var str = "eattd gedbcat gedat jadu geat beu";
var newStr = str
var exp1 = /w atb/ig; WordsArr = new Array();
var matchedStr = exp1.exec(str);

while (matchedStr != null && matchedStr.index < str.length) {
if (matchedStr[ 0] ! = null) {
inv.innerHTML = "
結果は次のようになります: " matchedStr[0];
newStr = newStr.replace(🎜>); >matchedStr = exp1.exec(str);
}

wordsArr = newStr.split(" ");

for (var i = 0; i
) {
if (wordsArr[i] == "未定義") {
wordsArr.splice(i,1)
} else
i
}

inv .innerHTML = "
結果は次のようになります。 " WordsArr;
}


OK、完了です。

考えれば得られるが、考えなければ得られない。
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート