JSPで入力文字列が指定した接尾辞で終わっているかどうかを判定する方法
JSPのJSTL関数のひとつである fn:endsWith() を使うと、入力文字列が指定した接尾辞(サフィックス)で終わっているかどうかを簡単に判定できます。文字列の末尾が特定のパターンと一致するかを確認したい場合に便利な関数です。
構文
fn:endsWith() 関数の構文は以下の通りです。
boolean endsWith(java.lang.String, java.lang.String)
第一引数には対象となる文字列、第二引数には確認したい接尾辞を指定します。戻り値は boolean 型で、文字列が指定した接尾辞で終わっていれば true、そうでなければ false を返します。
使用例
次の例では、fn:endsWith() 関数の動作を実際のコードで確認できます。
<%@ taglib uri = "https://java.sun.com/jsp/jstl/core" prefix = "c" %>
<%@ taglib uri = "https://java.sun.com/jsp/jstl/functions" prefix = "fn" %>
<html>
<head>
<title>JSTL関数の使用例</title>
</head>
<body>
<c:set var = "theString" value = "I am a test String 123"/>
<c:if test = "${fn:endsWith(theString, '123')}">
<p>String ends with 123<p>
</c:if>
<c:if test = "${fn:endsWith(theString, 'TEST')}">
<p>String ends with TEST<p>
</c:if>
</body>
</html>
このコードでは、まず c:set タグを使って変数 theString に「I am a test String 123」という文字列を設定しています。
その後、c:if タグ内で fn:endsWith() を2回呼び出しています。1つ目は文字列が「123」で終わるかどうか、2つ目は「TEST」で終わるかどうかをチェックしています。
ここで注意すべき点は、fn:endsWith() の判定は大文字・小文字を区別するということです。対象の文字列は小文字の「test」を含んでいますが、判定には大文字の「TEST」を指定しているため、条件は成立しません。
実行結果
上記のコードを実行すると、次のような結果が表示されます。
String ends with 123
「123」で終わっているかどうかの判定は true となり該当するメッセージが出力されますが、「TEST」で終わるかどうかの判定は false となるため、2つ目のメッセージは表示されません。
まとめ
fn:endsWith() は、JSTLの関数タグライブラリ(functions)に含まれる関数で、文字列の末尾チェックを手軽に行えます。ファイル拡張子の確認やURLの判定など、さまざまな場面で活用できるので、ぜひ覚えておきましょう。
-
CSSでinput要素のプレースホルダーテキストをスタイリングする方法
HTMLの<input>要素のプレースホルダー(placeholder)テキストをCSSでカスタマイズするには、擬似要素(pseudo-element)をターゲットに指定する必要があります。これを実現するのが、CSSの擬似セレクターである::です。 通常のinput要素とプレースホルダーテキスト まずは、プレースホルダー付きのシンプルなinput要素を見てみましょう。 ブラウザのデフォルトスタイルでは、プレースホルダーテキストは次のように表示されます。 CSSでプレースホルダーの色を変更する それでは、::placeholderセレクターを使って、プレースホルダーのテキストを赤
-
CSSでフォーカス時に入力フィールドをクリアする方法
フォーカス時に入力フィールドをクリアするには入力フィールドにフォーカスが当たった瞬間に、既存の値を自動的にクリアしたいケースはよくあります。例えば、あらかじめデフォルトのテキストを表示しておき、ユーザーがフィールドをクリックした時点でその値を消去するといった使い方です。これを実現するには、HTMLのonfocus属性を使用し、フォーカスが当たったタイミングで入力値を空文字列に設定します。以下にコード例を示します。コード例<!DOCTYPE html> <html> <head> </head> <body> <h1>フォー