1

これを機能させる必要があり、約45数分間グーグルで検索しています。

これは私がやろうとしていることです....(私は置換機能を使用していることに注意してください。したがって、正規表現は私が望むものではないはずです...?)

   $('#parameter_name').keyup(function(e){   

      var regex_str = '/@[a-zA-Z][a-zA-Z0-9]/';

      var val       = $(this).val();     

      val           = val.replace(regex_str, ''); 

      $(this).val(val); 
   });

そして、これは私が許可するために正規表現が必要なものです:

  • 最初の文字は@
  • 2 番目の文字が含まれている必要があります[a-zA-Z]
  • の次の文字が 0 から多く存在する可能性があります[a-zA-Z0-9_]

(補足:_2番目の文字の位置にある可能性があることは理解していますが、それは少し複雑になります.3番目の文字ではない3番目の文字が必要であり、_それは私が持っている残りのルールに適合しません...私は簡単なことをしていて、それを許可していません)

そこに何を入れても..空白が残り、他の奇妙なことをすることになります。

編集: だから...いくつかの方法を試しましたが、これに対する完璧な解決策は見つかりませんでした

4

2 に答える 2

0

これはうまくいくはずです:

'/@[a-zA-Z][a-zA-Z0-9_]*/'

@ 文字の後に 1 文字だけが続き、その後に 0 個以上の文字、数字、およびアンダースコアが続きます。

于 2013-03-08T18:24:48.953 に答える
0

書面による仕様については、必要なようです

/^@[a-zA-Z][a-zA-Z0-9]*/

は文字列の^先頭に一致するため、前に何かを持つことはできません。

文字列内の複数の出現に一致させることが必要な場合は、おそらく単語の境界をテストしてgフラグを追加する必要があります。

/\b@[a-zA-Z][a-zA-Z0-9]*\b/g

また、正規表現は文字列ではなく、正規表現リテラルであることにも注意してください'

val.replace(/\b@[a-zA-Z][a-zA-Z0-9]*\b/g, ''); 

それ以外の

val.replace('/\b@[a-zA-Z][a-zA-Z0-9]*\b/g', ''); 
于 2013-03-08T18:22:34.270 に答える