ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptの正規表現のRegExpオブジェクトの詳しい解説_javascriptスキル

JavaScriptの正規表現のRegExpオブジェクトの詳しい解説_javascriptスキル

WBOY
WBOYオリジナル
2016-05-16 15:26:061393ブラウズ

1. RegExp オブジェクトの概要
RegExp オブジェクトは正規表現を表します。RegExp は正規表現の略で、文字列のパターン マッチングを実行するための強力なツールです。 RegExp オブジェクトは、テキストから取得するコンテンツを指定するために使用されます。テキストを取得するときは、パターンを使用して取得する内容を記述します。 RegExp はこのパターンです。単純なパターンには単一の文字を使用できますが、より複雑なパターンにはさらに多くの文字が含まれており、解析、形式チェック、置換などに使用できます。
正規表現では、文字列内の検索位置や検索する文字の種類などを指定できます。
2. RexExp オブジェクトを作成します
正規表現の作成は文字列の作成と似ています。正規表現を作成するには 2 つの方法があります。
(1) リテラルを使用して RegExp オブジェクトを作成するための構文:
                                                                                                                                                (2) 新しいキーワードを使用して RegExp オブジェクトを作成する構文: 新しい RegExp(パターン、属性);

パラメータの説明: 1パラメータパターンは、正規表現パターンまたはその他の正規表現を指定する文字列です。 2Parameter 属性は、属性 "g"、"i"、および "m" を含むオプションのパターン文字列で、それぞれグローバル マッチング、大文字と小文字を区別しないマッチング、および複数行のマッチングを指定するために使用されます。
RegExp オブジェクトは、取得パターンを格納するために使用されます。 new キーワードを使用して RegExp オブジェクトを作成します。次のコードは、パターンという名前の RegExp オブジェクトを作成します。そのパターンは「e」です。この RegExp オブジェクトを使用して文字列を検索すると、文字「e」が検索されます。




上記は文字通りの方法で作成することもできます。これは私たちがよく使用する方法でもあります:

<span style="font-size:18px;">var pattern=new RegExp("e"); 
var pattern=new RegExp("e",gi);//设置全局搜素不区分大小写</span> 


3. RegExp オブジェクトの詳細な分析
<span style="font-size:18px;">var pattern=/e/; 
var pattern=/e/gi;</span> 

(1)RegExp オブジェクトのプロパティ

これらの基本的な例は上記の例ですでに見てきましたが、いくつかの簡単な例を見てみましょう:


(2)RegExp オブジェクトメソッド
<span style="font-size:18px;">var pattern=/e/gim; 
document.write(pattern.global+" ");//输出:true。说明设置了全局模式 
document.write(pattern.ignoreCase+" ");//输出:true 
document.write(pattern.multiline+" ");//输出:true 
document.write(pattern.source+" ");//输出:e</span> 

1) test() メソッド は文字列内の指定された値を取得し、戻り値は true または false です。



2)

exec() メソッド
は、文字列内の指定された値を取得します。一致するものが見つからない場合、戻り値は見つかった値です。
<span style="font-size:18px;">var pattern=/e/; 
var str="The best things in life are free"; 
document.write(pattern.test(str));//输出:true</span> 
例:


例:

検索を設定するには、RegExp オブジェクトに 2 番目のパラメータを追加します。特定の文字が出現する箇所をすべて検索する必要がある場合は、「g」パラメータを使用できます。
「g」パラメータを使用すると、exec() は次のように動作します:
<span style="font-size:18px;">var pattern=/e/; 
var str="The best things in life are free"; 
document.write(pattern.exec(str));//输出:e</span> 


1最初の「e」を見つけて、その位置を保存します。

2再度 exec() を実行すると、保存された位置から検索が開始され、次の "e" が検索され、その位置が保存されます。


  • 出力結果は次のとおりです: e e e e e null
3)
compile() メソッド
<span style="font-size:18px;">var pattern=/e/g; 
var str="The best things in life are free"; 
do 
{ 
 var result=pattern.exec(str); 
 document.write(result+" "); 
} 
while(result!=null)</span> 
は、正規表現を変更するために使用されます。compile() は、取得モードを変更するだけでなく、2 番目のパラメーターを追加または削除することもできます。



(3) 正規表現をサポートする String オブジェクトのメソッド
<span style="font-size:18px;">var pattern=/e/; 
var str="The best things in life are free"; 
document.write(pattern.test(str));//输出:true 
pattern.compile("d"); 
document.write(pattern.test(str));//输出:false</span> 

正規表現は String オブジェクトと特定の関係があるため、String オブジェクトの一部のメソッドを正規表現に使用できます。

(4)元字符是拥有特殊含义的字符:

由于这些使用广泛,我们只是举几个例子:

<span style="font-size:18px;">var pattern=/b.ue/;//点符号表示匹配除了换行符以外的任意字符。 
var str="blue"; 
document.write(pattern.test(str));//输出:true</span> 

(5)方括号用于查找某个范围的字符:

<span style="font-size:18px;">var pattern=/[a-z]oogle/;//[a-z]表示26个小写字母,任意一个都可以匹配 
var str="woogle"; 
document.write(pattren.test(str));//输出:true</span> 

(6)量词

<span style="font-size:18px;">var pattern=/go+gle/;//o*表示匹配至少一个0 
var str="google"; 
document.write(pattren.test(str));//输出:true</span> 

四、常用的正则表达式
主要的是看变量patttern模式字符串表示的正则表达式。其余的是一些JS的基本的东西,可以忽略。
(1)检查邮政编码

<span style="font-size:18px;">var pattern=/^[0-9]{6}$/;//必须是6位,并且都是是数字 
var str=prompt("请输入邮政编码:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的邮政标号!"); 
} 
else 
{ 
 alert("您输入的是错误的邮政标号!"); 
}</span> 

输入一些数据运行的结果为:
输入:056500

 输入:123

(2)简单电子邮件地址验证

<span style="font-size:18px;">var pattern=/^([\w\.\-]+)@([\w\-]+)\.([a-zA-Z]{2,4})$/; 
var str=prompt("请输入邮箱名称:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的邮箱名称!"); 
} 
else 
{ 
 alert("您输入的是错误的邮箱名称!"); 
}</span> 

(3)检查上传文件压缩包

<span style="font-size:18px;">var pattern=/[\w]+\.zip|rar|gz/;//\w表示所有数字和字母以及下划线 
var str=prompt("请输入压缩包的名称:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的压缩包名称!"); 
} 
else 
{ 
 alert("您输入的是错误的压缩包名称!"); 
}</span> 

(4)检查手机号

<span style="font-size:18px;">var pattern=/^[1][0-9]{10}$/; 
var str=prompt("请输入手机号码:"); 
if(pattern.test(str)) 
{ 
 alert("您输入的是正确的手机号码!"); 
} 
else 
{ 
 alert("您输入的是错误的手机号码!"); 
}</span> 

下面三个输出的结果就不再一一展示,只要写好模式正则表达式就可以检验输入的数据是否正确。由于刚刚接触正则表达式,可能有不正确的地方,自己会进行完善和修正,希望对大家的学习有所帮助。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。