この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
VerbalExpressionsとは
VerbalExpressionsは、関数をチェーンさせて正規表現ルールを記述するためのモジュールです。 今回紹介するJavaScript用モジュールは、nodeでもクライアントサイドでも使用可能です。 JavaScriptだけでなく、JavaやPython、Clojure等にもそれぞれモジュールがあるようです。
今回はREADMEにものっている例を見ながらVerbalExpressionsを試してみましょう。
環境構築方法
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.7.5
- Node.js : v0.10.8
- npm : 1.2.23
npmを使用してモジュールをインストールしましょう。
% npm install verbal-expressions
サンプルコード
ではGithubにのっている、URLをチェックする例をみてみましょう。 verbal-expressionsをrequireし、関数をチェーンさせてURLの正規表現を定義し、test関数でチェックしています。
var VerEx = require("verbal-expressions");
var tester = VerEx()
.startOfLine()
.then( "http" )
.maybe( "s" )
.then( "://" )
.maybe( "www." )
.anythingBut( " " )
.endOfLine();
// Create an example URL
var testMe = "https://www.google.com";
// Use RegExp object's native test() function
if( tester.test( testMe ) ) {
console.log( "We have a correct URL ");
} else {
console.log( "The URL is incorrect" );
}
各関数はここに解説がのっていますが、 then/maybe/anythingButを組み合わせてURLをチェックしています。
ちなみに、Githubにはfindとreplace関数をつかって文字列内容を置換する例も記述しています。
// Create a test string
var replaceMe = "Replace bird with a duck";
// Create an expression that seeks for word "bird"
var expression = VerEx().find( "bird" );
var result = replaceMe.replace( expression, "duck" );
console.log( result ); // Outputs "Replace duck with a duck"
find関数で「bird」という単語を検索し、「duck」に置き換えています。
まとめ
慣れていれば既存の正規表現はとても使いやすいと思いますが、 こういったメソッドチェーン形式で組み立てていくのも理解しやすいかもしれません。