JavaScript RegExp Object正規表現入門

9601 ワード

RegExpとは
RegExpはreglar expressionの略語です.
RegExpオブジェクトは正規表現を表し、文字列にパターンマッチングを行う強力なツールです.
あるテキストを検索すると、検索する内容をモードで説明することができます.RegExpはこのモードです.
シンプルなパターンは、単独の文字であっても良いです.
より複雑なモードは、より多くの文字を含み、解析、書式チェック、置換などに利用できます.
文字列の検索位置や検索する文字の種類などを指定できます.
RegExpオブジェクト
直接量文法
/pattern/attributes
RegExpオブジェクトを作成する構文:
new RegExp(pattern, attributes);
  
パラメータ pattern は、正規表現のモードまたは他の正規表現を指定する文字列です.
パラメータ atributes はオプションの文字列で、属性「g」、「i」、「m」を含み、それぞれ大域一致、大域小文字と小文字のマッチング、複数行一致を指定します.ECMAScriptが標準化されるまでは、m属性はサポートされていません.もし pattern は、正規表現であり、文字列ではない場合は、そのパラメータを省略する必要があります.
戻り値
新しいRegExpオブジェクトは、指定されたパターンとフラグを持っています.パラメータが pattern は、正規表現であり、文字列ではなく、RegExp()コンストラクタは指定されたRegExpと同じモードとフラグで新しいRegExpオブジェクトを作成します.
new演算子を使わずにRegExp()を関数として呼び出すと、その動作はnew演算子で呼ばれる場合と同じです. pattern 正規表現である場合は、戻ります. patternではなく、新しいRegExpオブジェクトを作成します.
投げ出す
SyntaxError-もし pattern 正規表現ではなく、 atributes 「g」、「i」、「m」以外の文字が含まれています.
Type Error-もし pattern RegExpオブジェクトですが、省略されていません. atributes パラメータ、この異常を投げます.
例:
<html>
<script type="text/javascript">
var str = "learn JAVASCRIPT regexp ";
var patt = /Java/i;
document.write(str.match(patt));//JAVA
var regex = new RegExp("a");
document.write(regex.test("hello,this a test program!") );//true
</script>
</html>
 
RegExpオブジェクトの方法
RegExpオブジェクトは、test()、exec()およびcomple()の3つの方法があります.
test()
test()メソッドは文字列の指定値を検索します.戻り値はtrueまたはfalseです.
exec()
exec()メソッドは文字列の指定値を検索します.戻り値は、見つけられた値です.マッチが見つからない場合は、nullに戻ります.
comple()
comple()メソッドはRegExpを変更するために使用されます.
comple()は検索モードを変更することもできますし、2番目のパラメータを追加または削除することもできます.
 
 例:
<html>
<body>
<script type="text/javascript">
        var regex = new RegExp("abc");
        var str = "this is regexp learn,now test abcdefg";
        document.write(regex.test(str)+"<br>");
        document.write(regex.exec(str)+"<br>");
        regex.compile("def");
        document.write(regex.test(str)+"<br>");
</script>
</body>
</html>
 
修飾子
修飾子
説明
i
大文字と小文字のマッチングに敏感ではありません.
g
グローバルマッチングを実行します.最初のマッチが見つかったら停止するのではなく、すべてのマッチを検索します.
m
複数行マッチを実行します.
大かっこ
四角括弧は、ある範囲の文字を検索するために使用されます.
表式
説明
[abc]
四角いかっこの中の任意の文字を検索します.
[^abc]
四角括弧の間にない文字を検索します.
[0-9]
0から9までのすべての数字を検索します.
[a-z]
小文字aから小文字zまでの任意の文字を検索します.
[A-Z]
大文字Aから大文字Zまでの文字を検索します.
[A-z]
大文字Aから小文字zまでの文字を検索します.
[adgk]
指定されたセット内の任意の文字を検索します.
[^adgk]
指定されたセット以外の任意の文字を検索します.
(red_blue_green)
指定されたオプションを検索します.
メタ文字
メタ文字(Metacharacter)は特殊な意味を持つ文字です.
メタ文字
説明
..。
行の区切り以外に、単一の文字を検索します.
\w
単語の文字を検索します.
\W
単語以外の文字を検索します.
\d
数字を検索します
\D
非数値文字を検索します.
\s
空白の文字を検索します.
\S
空白以外の文字を検索します.
\b
単語の境界にマッチします.
\B
単語以外の境界にマッチします.
\0
NUL文字を検索します.


改行を検索します
\f
変換子を検索します
\r
リターンを検索します
\t
タブを検索します
\v
垂直タブを検索します.
\xxx
八進数×で指定された文字を検索します.
\xdd
16進数ddで指定された文字を検索します.
\uxxxx
16進数xxxxで規定されているユニフォーム文字を検索します.
助数詞
助数詞
説明
n+
少なくとも1つのnを含むすべての文字列にマッチします.
n*
ゼロまたは複数のnを含む任意の文字列にマッチします.
nですか?
ゼロまたはnを含むすべての文字列にマッチします.
n{X}
X個のnのシーケンスを含む文字列と一致します.
n{X,Y}
XまたはY個のnのシーケンスを含む文字列と一致します.
n{X}
マッチは少なくともX個のnのシーケンスを含む文字列です.
n$
nで終わる任意の文字列にマッチします.
^n
任意の先頭がnの文字列にマッチします.
?n
任意の直後に指定された文字列nの文字列にマッチします.
?n
後に文字列nが指定されていない文字列にマッチします.
RegExpオブジェクトのプロパティ
FF:Firefox,IE:Internet Explorer
属性
説明
FF
IE
global
RegExpオブジェクトはフラグgを持っていますか?
1
4
イグノレCase
RegExpオブジェクトがフラグiを持っているか.
1
4
lastIndex
次のマッチを開始する文字の位置を示す整数.
1
4
multiline
RegExpオブジェクトはフラグmを持っていますか?
1
4
source
正規表現のソーステキストです.
1
4
RegExpオブジェクト方法
FF:Firefox,IE:Internet Explorer
方法
説明
FF
IE
comple
コンパイル正規表現.
1
4
exec
文字列で指定された値を検索します.見つかった値を返し、その位置を決定します.
1
4
test
文字列で指定された値を検索します.trueまたはfalseを返します.
1
4
正規表現のStringオブジェクトをサポートする方法
FF:Firefox,IE:Internet Explorer
方法
説明
FF
IE
search
正規表現にマッチする値を検索します.
1
4
match
一つ以上の正規表現のマッチを見つけました.
1
4
replace
正規表現と一致する部分列を置換します.
1
4
スプリット
文字列を文字列配列に分割します.
1
4