JavaScript の正規表現

文法

定義

JavaScript で正規表現を定義するには、<%XXX%>

var reg=new RegExp( のような文字列を定義します。 ' <%[^%>]+%>','g');

2. リテラル

var reg=/<%[^%>]%>/ g;

g: グローバル、全文検索、デフォルトの検索は最初の結果を検索してから停止します

i: 大文字と小文字を区別しません、デフォルトでは大文字と小文字が区別されます

m: 複数行、複数行検索 (^ と $ の意味を変更すると、文字列全体の先頭と末尾だけでなく、任意の行の行頭と末尾でそれぞれ一致します)

メタ文字


正規表現は重要な理由は、エスケープ文字と組み合わせが多すぎるのに、正規表現のメタ文字 (正規表現で特別な意味を持つ特殊文字。先頭の文字を指定するために使用できる文字) が少ないことです。 [ { ^ $ | ) * + .

すべてのメタ文字に特定の意味があるわけではありません。分類を見てください

定義済みの特殊文字

水平タブ文字

r キャリッジリターン文字

n ラインフィード文字

f フォームフィード文字

cX X (Ctrl+X) に対応する制御文字

v 垂直タブ文字

原則として、通常の文字は1文字に対応し、[]で囲んで[]全体が1文字に対応します。


alert(/ruby/.test("ruby"));//true

alert(/[abc]/.test("a"));//true

など

alert(/[abc]/.test("b"));//true

alert(/[abc]/.test("c"));//true

alert( " コウモリ、ネコ、fAt コウモリ、faT ネコ".match(/[bcf]at/gi));//bat,Cat,fAt,bat,faT,cat


negative Xiang クラス

も括弧内で大騒ぎし、前にメタキャラクターを追加してそれを否定し、括弧内の文字が一致できないことを示します。

alert(/[^abc]/.test("a"));//false

alert(/[^abc]/.test("b"));// false

alert(/[^abc]/.test("6"));//true

alert(/[^abc]/.test("gg"));//true

Scope クラス

は依然として角括弧内で大騒ぎします。一致するものが多すぎたり、種類が同じだったりする場合がありますが、すべてを入力するのは面倒です。真ん中に横線が入っているのが特徴です。

複合クラス

は依然として角括弧内で大騒ぎします。角括弧を使用して、さまざまな種類の単一文字を一致させることができます。

alert(/[a-f]/.test("b"));//true

alert(/[a-f]/.test("k"));//false

alert(/[a-z]/.test("h"));//true

alert(/[A-Z]/.test("gg"));//false

alert( /[^H-Y]/.test("G"));//true

alert(/[0-9]/.test("8"));//true

alert(/ [^7-9]/.test("6"));//true

alert(/[a-m1-5n]/.test("a"))//true

alert(/[a-m1-5n]/.test("3"))//true

alert(/[a-m1-5n]/.test(a))//true

alert(/[a-m1-5n]/.test("r"))//false


定義済みクラス


文字説明と同等


[^nr] 改行と復帰を除く任意の文字

d [0-9] 数字

D [^0-9] 数字以外の文字

s [tnx0Bfr] 空白文字

S [^ tnx0Bfr] 空白以外の文字

w [a-zA-Z_0-9] 単語文字 (すべての文字)

W [^a-zA-Z_0-9] 単語以外の文字


alert(/d/.test("3 "))//true

alert(/d/.test("w"))//false

alert(/D/.test("w"))//true

alert(/w/.test("w"))//true

alert(/w/.test("SI"))//false

alert(/W/.test(" " ))//true

alert(/s/.test(" "))//true

alert(/S/.test(" "))//false

alert( / S/.test("正"))//true

alert(/./.test("美"))//true

alert(/./.test(" ")) / /true

alert(/./.test(a))//true


正規表現をサポートする String オブジェクトのメソッド

1. search() メソッド;

このメソッドは、文字列内の指定された部分文字列を取得するか、正規表現に一致する文字列を取得するために使用されます。

基本構文: stringObject.search(regexp);

@param パラメーター regexp は、stringObject で取得する必要がある文字列にすることも、取得する必要がある RegExp オブジェクトにすることもできます。

@return (戻り値) 正規表現オブジェクトに一致する stringObject 内の最初の部分文字列の開始位置。一致する部分文字列が見つからない場合は、-1 が返されます。

注: search() メソッドはグローバル一致を実行せず、フラグ g を無視し、regexp オブジェクトの lastIndex 属性を持たず、常に開始されます。文字列から 開始位置で検索する場合、常に stringObject と一致する最初の位置が返されます。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "Visit W3cSchool!"; 
    var n = str.search(/3c/i);
    document.getElementById("demo").innerHTML = n;
}
</script>
</body>
</html>

2. match() メソッド;

このメソッドは、文字列内の指定された値を取得するか、1 つ以上の正規表現の一致を検索するために使用されます。このメソッドは、indexOf() または lastIndexOf(); に似ていますが、文字列の位置ではなく、指定された値を返します。

stringObject.match(searchValue) または stringObject.match(regexp)

@ param (パラメータ)

searchValue は文字列の値を取得する必要があります

regexp: パターンに一致する必要がある RegExp オブジェクト。

@return(戻り値) は、成功した一致の配列を格納します。グローバルに一致する場合は、配列を返します。一致するものが見つからない場合は、null が返されます。返される配列には 3 つの要素があり、最初の要素には一致するテキストが格納され、index 属性は一致するテキストを示します。 input 属性は stringObject オブジェクトへの参照を宣言します。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>php.cn</title>
</head>
<body>
<button onclick="myFunction()">点击</button>
<p id="demo"></p>
<script>
function myFunction() {
    var str = "hello world"; 
    var n = str.match("world");
    document.getElementById("demo").innerHTML = n;
}
</script>
</body>
</html>

3. replace() メソッド:

このメソッドは、文字列内の一部の文字を他の文字に置き換えたり、通常の文字列に一致する部分文字列を置き換えたりするために使用されます。式;

基本構文: stringObject.replace(regexp/substr,replacement);

@param (パラメータ)

置換パターンを必要とする文字列または RegExp オブジェクト。

置換: 文字列の値、置換されるテキスト、または置換テキストを生成する関数。

@return(戻り値) 置換後の新しい文字列を返します

注: 文字列の stringObject の replace() メソッドは、検索と置換の操作を実行する 2 つの置換モードがあります。通常の一致パターンの場合は、グローバル置換を表す修飾子 g を追加できます。それ以外の場合は、最初に一致する文字列のみを置換します。

1. test() メソッド:

このメソッドは、文字列が特定のパターンに一致するかどうかを検出するために使用されます。 基本構文: RegExpObject.test(str);

@param (パラメーター) str が必要です。 string; @return (戻り値) 文字列 str に RegExpObject に一致するテキストが含まれている場合は true を返し、それ以外の場合は false を返します。

このメソッドは、正規表現の一致を取得するために使用されます。文字列内の式。

基本構文: RegExpObject.exec(string)

@param (パラメータ): string [必須] 取得する文字列。

@return (戻り値): 一致する結果が見つからない場合、戻り値は null になります。

注: 返された配列の最初の要素は正規表現 Text と一致します。このメソッドも同様です。 2 つの属性を返します。index 属性は、一致するテキストの最初の文字の位置を宣言します。このメソッドがグローバルでない場合、返される配列は、() によって返される配列と同じです。方法は同じです。 りー

学び続ける
||
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>php.cn</title> </head> <body> <button onclick="myFunction()">点我</button> <p id="demo">请访问网站</p> <script> function myFunction() { var str = document.getElementById("demo").innerHTML; var txt = str.replace("网站","php.cn"); document.getElementById("demo").innerHTML = txt; } </script> </body> </html>
  • おすすめコース
  • コースウェアのダウンロード
現時点ではコースウェアはダウンロードできません。現在スタッフが整理中です。今後もこのコースにもっと注目してください〜