2016-11-29 3 views
0

HTML5の "pattern"属性を使用しようとしていますが、正規表現にあまり経験はありません。HTML - 命名法を検証するパターン

私が検証したいの命名法は以下の通りです:「0100455」は、一般的に、「LM」を7〜10文字になります

0100455_LM_Izaguirre 

は「LM、LI、AQ」と来て、すべてを異なる場合があり後(例えば、 "Izaguirre")は少なくとも1文字のテキストです。 重要なことは、スクリプトが維持され、必要であることです。

これはすべてPHPで修正され、後でPHPWordでWordに貼り付けられる値を検証するために必要です。

//0100455_LM_Izaguirre 
$sitebase = "0100455_LM_Izaguirre"; 
$string = explode("_", $sitebase); 
$idcontrol = $string[1].'_'.$string[0]; 
+0

はこのJavaScript(クライアント側)またはPHP(サーバーで処理する必要がありません一致を返します。 -側)? –

+0

これはPHP用です。そのうまくいった^ [0-9] {7,10} _ [A-Z] {2} _ [A-Za-z \ s] + $ – Kokox

+1

文字クラスの使用を検討することもできます。これらのセクションでは_a-z_と '_'が受け入れられない限り、0-9の代わりに\ d、AZの代わりに\ wを使用します。[このチートシート](https://courses.cs.washington.edu/courses)を参照してください。 /cse190m/12sp/cheat-sheets/php-regex-cheat-sheet.pdf) –

答えて

2

^[0-9]{7,10}_[A-Z]{2}_[A-Za-z]+$LMは、任意の2 charectersなる場合、正規表現パターンであろう。

^[0-9]{7,10}_(LM|LI|AQ)_[A-Za-z]+$は、LMが{LM、LI、AQ}の場合のみ正規表現パターンになります。

デモ: -

var rx = /^[0-9]{7,10}_(LM|LI|AQ)_[A-Za-z]+$/gm; 
 
console.log("0100455_LM_Izaguirre".match(rx)); 
 
console.log("0100455_YM_Izaguirre".match(rx)); 
 
console.log("0100455_AQ_Izaguirre".match(rx));

nullが

関連する問題