ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 正規表現の定義と導入

JavaScript 正規表現の定義と導入

零下一度
零下一度オリジナル
2017-07-18 16:01:441653ブラウズ

JavaScript 正規表現

正規表現 (英語: Regular Expression、コード内では regex、regexp、または RE と略されることがよくあります) は、単一の文字列を使用して、特定の構文ルールに準拠する一連の文字列検索パターンを記述し、一致させます。

テキスト検索とテキスト置換に使用できる検索モード。

正規表現とは何ですか?

正規表現は、一連の文字によって形成される検索パターンです。

テキスト内のデータを検索する場合、検索パターンを使用してクエリの対象を説明できます。

正規表現には、単純な文字またはより複雑なパターンを使用できます。

正規表現は、すべてのテキスト検索およびテキスト置換操作に使用できます。

1. RegExp コンストラクターを使用して正規表現を定義します。最初のパラメータは文字列として渡される正規表現で、2 番目のパラメータは同じく文字列として渡される修飾子です。

例:var caps = new RegExp("[A-Z]", "g");

2. 正規表現リテラルを直接定義します。正規表現の右側にスラッシュ記号「/」で区切られ、その後に直接修飾子が続きます。 (こちらをお勧めします)

例:var caps = /[A-Z]/g;

JavaScriptの正規表現でよく使われる文字

[exp] は、e、[^exp] は e を除く任意の文字に一致します。 マッチ (マッチするものを含む) 。 パイプ文字を使用しますが含まれています exp+match expAsBは空白文字を含む文字列と一致しますBD は、数字を除く任意の文字と一致します。 リテラル文字、つまり単語、数字、文字と一致しますリテラル文字を除く任意の文字と一致します一般的に使用される式や修飾子に加えて、正規表現の使用方法を定義するには、3 つの値があり、オプションとして個別に使用することも、一度に複数を使用することもできます。 g最初に一致したものを返すだけでなく、正規表現を適用して比較文字列内の一致する項目をすべて検索しますi
文字 説明
[exp] 角括弧([])で括られた文字列、正規表現プロセッサは、角かっこ内の任意の文字 と一致します。 の任意の文字と一致します。
[A-Z] は A-Z の任意の文字に一致します; [0-9] は 0-9 の任意の数値に一致します (exp) 括弧で囲まれた文字シーケンスの場合、正規表現は正確な文字順序になります。
(exp) は文字列 "exp" と一致します (exp1 exp2)
exp+式の後に + 文字を使用します。これは、式が次の場合にのみ意味します と 1 回または複数回一致します。
s 空白文字、つまりスペース、タブ、キャリッジリターンと一致します
S空白文字以外の予期しない文字と一致します ASB は、空白文字ではない A と一致します。任意の文字 B と一致します。
d は、0 ~ 9 の数字と一致します。
w

W

修飾子 説明

比較するための式を適用し、大文字と小文字を無視して一致させる

m

javascript正则表达式常见用法

有三种string类型的方法可以使用正则表达式。match()查找出能匹配正则表达式的所有子字符并将结果以字符串数组的形式返回。replace()方法查找和前者相同的子字符并用传入该方法的另一个字符串进行替换。search()只是定位能匹配到正则表达式的第一个子字符串的位置,并以数字序号形式放回字符串在整个字符串中的位置。

    var regEx = /他妈的/g,
        string = "我去你他妈的";
    alert(string.match(regEx));         //他妈的
    alert(string.search(regEx));        //3
    alert(string.replace(regEx, "*"));  //我去你*

replace()特殊用法

可用作javascript字符串的replace()方法第二个参数的特殊字符

最初の行だけでなく、テキストの複数行を比較および一致させるための式を適用します
字符序列 含义 例子
$$ 把找到的字符串用一个单独的$字符代替 "Hello World".replace(/o/g, "\$\$");//"Hell\$ W\$rld"
$& 使用第一个参数中所给定的字符串来替换所找到的子字符串 "Hello World".replace(/o/g, "$&");//"Hello World"
$`(ESC下面那个`) 使用所找到的字符串之前的文本来替换该子字符串 "Hello World".replace(/o/g, "$`");//"HellHell WHello Wrld"
$' 使用所找到的字符串之后的文本来替换该子字符串 "Hello World".replace(/o/g, "$'");//"Hell World Wrldrld"
\$1, \$2 当第一个参数中包含的正则表达式使用小括号对进行表达式分组,则可以提取出特定的表达式所匹配的子字符串(\$1对应第一个小括号,\$2对应第二个小括号) "Hello World".replace(/(o)(r)/g, "\$1\$2\$1\$2");//"Hello Wororldd"(查找到or,然后替换成oror

还有一种就是replace() 的第二个参数可以用函数方式传入,然后用函数的返回值来替换原子字符串。

var count = 0;
function replaceWithCount() {
    count = count + 1;
    return count;   
}
alert("Hello World".replace(/o/g, replaceWithCount)); //Hell1 W2rld
alert("Hello World".replace(/\s/g, replaceWithCount)); //Hello3World

总结

这只是我写的作为笔记的正则表达式一些简单的判断和javascript用法。正则表达式还可以很复杂很强大,那就要再你要使用的时候再去挖掘思考了。如果想了解更多,可以学习Mozilla开发者网络上的关于javascript中使用正则表达式的指引介绍。写得更加详细。

以上がJavaScript 正規表現の定義と導入の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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