この記事の例では、JavaScript が通常のマッチングに RegExp を使用する方法について説明します。皆さんの参考に共有してください。具体的な実装方法は以下の通りです。
<script type="text/javascript"> var matchedTimes = 0; //Match one d followed by one or more b's followed by one d //Remember matched b's and the following d //Ignore case myRe = new RegExp("d(b+)(d)", "ig"); // 等价于 myReg = /d(b+)(d)/ig; myArray = myRe.exec("ecDBDsdbbdz"); // ecdbBdbsdbbdz console.log("Regular Expression String: " + myRe.source); console.log("Is global? " + myRe.global); console.log("Ignore case? " + myRe.ignoreCase); console.log("Is mulitiline? " + myRe.multiline); console.log("------------------------------------------------"); logInfo(myArray, myRe); myArray = myRe.exec("ecDBDsdbbdz"); logInfo(myArray, myRe); function logInfo(myArray, myRe) { matchedTimes++; console.log("This is " + matchedTimes + " times match"); console.log("Original String: " + myArray.input); console.log("Match Result Array: [" + myArray + "]"); console.log("The 0-based index of the match in the string: " + myArray.index); console.log("The last matched characters: " + myArray[0]); console.log("The parenthesized substring matches [1]: " + myArray[1]); console.log("The parenthesized substring matches [2]: " + myArray[2]); console.log("The index at which to start the next match: " + myRe.lastIndex); console.log("-----------------------------------------------"); } myRe2 = /^\w+(\d*)$/ig console.log("myRe2: " + myRe2.source); //console.log("myRe2 matches abc1? " + myRe2.test("abc1")); // 加上这行跑跑看结果,因为是global匹配,所以lastIndex会改变, //所以后面的myRe2.test("abc")当然就是false console.log("myRe2 matches abc? " + myRe2.test("abc")); </script>
この記事が皆様の JavaScript プログラミング設計に役立つことを願っています。