JavaScriptで文字列が句読点で始まっているかどうかを判定する方法
JavaScriptでは、正規表現とmatch()メソッドを組み合わせることで、文字列が句読点で始まっているかどうかを簡単に判定できます。本記事では、その具体的な実装方法をサンプルコード付きで解説します。
サンプル文字列の準備
まず、次のような2つの文字列を用意します。このうち1つは、疑問符(?)という句読点で始まっています。
var sentence1 = 'My Name is John Smith.' var sentence2 = '? My Name is John Smith.'
この2つの文のうち、どちらが句読点で始まっているのかをプログラムで判定していきます。
句読点で始まるかどうかをチェックするコード
文字列の先頭が句読点であるかを確認するには、正規表現の先頭一致(^)を使って、ピリオド(.)、カンマ(,)、コロン(:)、感嘆符(!)、疑問符(?)のいずれかが最初の文字になっているかを調べます。
例
var punctuationDetailsRegularExpression = /^[.,:!?]/
var sentence1 = 'My Name is John Smith.'
var output1 = !!sentence1.match(punctuationDetailsRegularExpression)
if (output1 == true)
console.log("This (" + sentence1 + ") starts with a punctuation");
else
console.log("This (" + sentence1 + ") does not start with a punctuation");
var sentence2 = '? My Name is John Smith.'
var output2 = !!sentence2.match(punctuationDetailsRegularExpression)
if (output2 == true)
console.log("This (" + sentence2 + ") starts with a punctuation");
else
console.log("This (" + sentence2 + ") does not start with a punctuation");プログラムの実行方法
上記のプログラムを実行するには、Node.js環境で以下のコマンドを使用します。
node fileName.js
ここでは、ファイル名をdemo209.jsとして保存しているものとします。
出力結果
コードを実行すると、次のような出力が得られます。
PS C:\Users\Amit\javascript-code> node demo209.js This (My Name is John Smith.) does not starts with a punctuation This ( ? My Name is John Smith.) starts with a punctuation
出力を見ると、通常の文である「sentence1」は句読点で始まっていないと判定され、疑問符で始まる「sentence2」は句読点で始まっていると正しく判定されていることがわかります。
コードのポイント解説
- 正規表現
/^[.,:!?]/:^は文字列の先頭を意味し、[.,:!?]は角括弧内のいずれか1文字に一致することを表します。つまり「先頭がこれらの記号のどれかで始まるか」を判定できます。 match()メソッド: 正規表現に一致した場合は結果の配列を返し、一致しなかった場合はnullを返します。!!(二重否定):match()の戻り値を明示的に真偽値(Boolean)へ変換するためのイディオムです。これによりtrue/falseでの比較が容易になります。
判定したい句読点の種類を増やしたい場合は、文字クラス[ ]の中に対象となる記号を追加するだけで対応できます。たとえばセミコロンも判定対象にしたい場合は、/^[.,:!?;]/のように記述します。
-
JavaScriptでオブジェクトに特定のプロパティが存在するか確認する方法
JavaScriptでオブジェクトのプロパティ存在を確認する方法 JavaScriptでは、オブジェクトに特定のプロパティが存在するかどうかを確認したい場面がよくあります。最も基本的な方法は、すべてのオブジェクトが持つhasOwnProperty()メソッドを使用することです。このメソッドは、指定したプロパティがオブジェクト自身に直接定義されている場合にtrueを返し、存在しない場合にはfalseを返します。 hasOwnProperty()メソッドの構文 object.hasOwnProperty(propertyName) propertyName: 存在を確認したいプロパティ名(文字列
-
JavaScriptで数値と文字数が一致する文字列を検証する方法
問題文字列 str を引数として受け取るJavaScript関数を作成することを考えます。この関数は、文字列内の英字部分を、その直前にある数字に基づいて検証する必要があります。具体的には、文字列を数字で分割し、各数字とそれに続く部分文字列の文字数を比較します。すべての組み合わせが一致していれば、その文字列は有効であるとして true を返し、一箇所でも不一致があれば false を返します。例えば、以下のような文字列を見てみましょう。5hello4from2meこの文字列に対しては、true を返す必要があります。なぜなら、数字で分割すると「hello」「from」「me」という3つの部分文字