2016-09-10 1 views
0

RegExを使用して、任意の数の空白が出現し、合計の長さに13桁の数字が表示されるようにします。全角13の任意の数の空白または桁の正規表現

'   12' 

または

'  115678' 

現在の正規表現のようなもの:このヴァリアーを取得する方法

(^\s*\d[0-9]{1,12})$ 

あなたがcharacter classで13のスペースおよび/または数字件まで許可することができ、ブロックに

+0

私のデータは、左に空白を入れて右揃えにしています。いいえ、ちょうどreg ex –

+0

Reg ex –

+0

の中で何かを使うことで、たくさんの桁が数字の後に続き、_wholeのもの_(スペースと数字)を最大13文字にしたいのですか? – redneb

答えて

0

を使用してBLE出現:

^[\t \d]{1,13}$ 

white spacesた場合は、新しい行がスペースや\tの代わりに\sメタ文字を使用しています。

^[\s\d]{1,13}$ 

これはあなたが水平空白のため\hを使用することができますPHPの場合は、Javascriptがそれをサポートしていません。 (バージョン2)

^[\h\d]{1,13}$ 

デモ:https://regex101.com/r/gZ9rA8/1

非正規表現PHPバージョン:

$string = '  115678'; 
if(strlen($string) <=13 && is_numeric($string)) { 
    echo 'It\'s GOOD!'; 
} 

https://eval.in/639391

非正規表現のjavascript:

var string = '  111578'; 
if(string.length <= 13 && !isNaN(string.trim())) { 
    alert('good'); 
} else { 
    alert('bad') 
} 

デモ:あなたは一つの巨大な醜いと非効率的な正規表現で行うことができますhttps://jsfiddle.net/h9mx0tmn/

-1

^\s{0}\d{13}|\s{1}\d{12}|\s{2}\d{11}|\s{3}\d{10}|\s{4}\d{9}|\s{5}\d{8}|\s{6}\d{7}|\s{7}\d{6}|\s{8}\d{5}|\s{9}\d{4}|\s{10}\d{3}|\s{11}\d{2}|\s{12}\d{1}$ 

私はかかわらず、それをこのようをやっに対してお勧めします。文字列を正規表現^\s{0,13}\d{0,13}$と照合して、その長さが別のステップで13であることを確認します。

+2

または単に '^(?=。{13} $)\ s * \ d * $' – revo

+0

"これに反対することを勧めます" - Iでしょう。特に。同じものを扱う簡単な正規表現がいくつかあります。 – Jan

+0

@revoいいです。 +1 – redneb

0

満たされるための2つの条件があるので: - 桁の任意の出現に続いて空白の

  1. 任意出現13

使用正外観の

  • 全長前方ように正規表現この: -

    /(?=^\s*\d*$)(^.{13}$)/ 
    

    正規表現: -

    Regex lookahead, lookbehind and atomic groups

    ・ホープ、このことができます。

  • +0

    これは '\ s * \ d +。* 'の形式の文字列に最大13文字一致します。 – revo

    +0

    最初の条件の量子を編集しました。 –

    +0

    あなたは私を手に入れませんでした。 '6ABCDEFGHIJK'と一致します – revo

    関連する問題