2017-08-11 9 views
0

で1つの文字を受け入れてください:は、入力が、私はこれを持っている正規表現とjQuery

$('.onealphaonly').bind('keyup blur',function(){ 
    var node = $(this); 
    node.val(node.val().replace(/[^a-zA-Z]/g{1},'')); } 
); 

私はそれを行うだろう願っていますが、それは、入力フィールドに入力一つだけ手紙にユーザを可能にするということです。今のところ手紙しか受け付けませんが、私は1文字しか許さないようにすることができません(そして、何十もの答えを探しました)。何か案は?

Live demo

+0

も ​​'MAXLENGTH = 1 ' –

+1

@DimitarChristoff私はこれが答えとして掲載することができると思い。 =) – gsamaras

答えて

1

入力の最初の文字をキャプチャし、その値によって、すべてを交換してください。

$('.onealphaonly').bind('keyup', function() { 
 
    const node = $(this); 
 
    node.val(node.val().replace(/^([a-zA-Z]).*/g, '$1')); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input class="onealphaonly"/>

+0

Regex101: '{1}定量器 - 正確に1回(意味のない定量化器)に一致します。 – gsamaras

+1

@gsamarasあなたが正しいです、 '{1}'はまったく役に立たず、残念です。投稿編集: – Erazihel

+0

ありがとう、Erazihel。あなたは私の質問がダウンボテットを得るにはとても悪いと思いますか? – gsamaras

1

あなたの正規表現の構文エラーがあります。 /pattern/flagsの形式にする必要があります。正規表現は以下の通りです:node.val().replace(/^([a-zA-Z])[a-zA-Z]+/g, '$1')。 、あなたはまた、値の長さがあるかどうかをチェックすることにより、より良い成功を有することができる。また

node.val().substr(0, 1); 

:しかし、なぜあなたは代わりに以下を使用していない仕事をやる正規表現を作り上げるのは、多くの方法がありますそのような1より大きいと使用e.preventDefault()

if (node.val().length >= 1) { 
    e.preventDefault(); 
    return false; 
} 

フィドル:http://jsfiddle.net/ka52kdLv/14/

+0

答えとupvoteのアダムありがとう! – gsamaras

関連する問題