2012年07月15日
正規表現について
正規表現について、特に注意することを書いておきます。
文字列を特定の文字で区切る場合として、以下の構文がよく使われます。
// 1) 縦棒で区切る
var a = "ab|cd|ef|gh".split("|");
// 2) 縦棒で区切る
var a = "ab|cd|ef|gh".split(/|/);
1) 2) 両方とも同じ結果になりますが、違いとしては、
1) が文字列、2) が正規表現で区切っています。
"/"で区切られた場合は正規表現です。
正規表現は、以下の表記でも表すことができます。
// 3) 縦棒で区切る
var a = "ab|cd|ef|gh".split(new RegExp("|"));
2) と 3) は機能的には同じですが、3) では文字列を正規表現にすることができます。
個人的には 2) のほうは構文に不自然さを覚えます。
3) の表記について注意点です。
エスケープ記号入りの表記の場合、エスケープ記号をエスケープしておく必要があります。
// 2) 1文字以上の単語で区切る
var a = "ab|cd|ef|gh".split(/\w+/);
// 3) 1文字以上の単語で区切る
var a = "ab|cd|ef|gh".split(new RegExp("\\w+"));
正規表現オプションは、2) の場合は独特な気がします。
こちらも個人的に、文法に違和感があります。
// 2) 大文字小文字を区別しないで区切る
var a = "abcdefg".split(/cd/i);
// 3) 大文字小文字を区別しないで区切る
var a = "abcdefg".split(new RegExp("cd", "i");
{a8.net http://books.livedoor.com/item/1443887}
文字列を特定の文字で区切る場合として、以下の構文がよく使われます。
// 1) 縦棒で区切る
var a = "ab|cd|ef|gh".split("|");
// 2) 縦棒で区切る
var a = "ab|cd|ef|gh".split(/|/);
1) 2) 両方とも同じ結果になりますが、違いとしては、
1) が文字列、2) が正規表現で区切っています。
"/"で区切られた場合は正規表現です。
正規表現は、以下の表記でも表すことができます。
// 3) 縦棒で区切る
var a = "ab|cd|ef|gh".split(new RegExp("|"));
2) と 3) は機能的には同じですが、3) では文字列を正規表現にすることができます。
個人的には 2) のほうは構文に不自然さを覚えます。
3) の表記について注意点です。
エスケープ記号入りの表記の場合、エスケープ記号をエスケープしておく必要があります。
// 2) 1文字以上の単語で区切る
var a = "ab|cd|ef|gh".split(/\w+/);
// 3) 1文字以上の単語で区切る
var a = "ab|cd|ef|gh".split(new RegExp("\\w+"));
正規表現オプションは、2) の場合は独特な気がします。
こちらも個人的に、文法に違和感があります。
// 2) 大文字小文字を区別しないで区切る
var a = "abcdefg".split(/cd/i);
// 3) 大文字小文字を区別しないで区切る
var a = "abcdefg".split(new RegExp("cd", "i");
{a8.net http://books.livedoor.com/item/1443887}
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
-
no image
posted by FJT at 00:48| javascript