-3

正規表現は初めてです。テキスト入力の先頭に特殊文字*を許可するが、テキストの他の場所には許可しないJavaScriptコードの正規表現が必要です。

例: * textを許可する必要があります、 * text*abcdを許可しないでください

PHPにも同様の正規表現が必要です。

「/^\ s * /」を使ってみましたが、うまくいきません。とにかく、私は正規表現のアイデアを持っていません。私はそれを学び始めました。

ありがとうドラ

4

7 に答える 7

5

正規表現の使い方を学ぶことの一部は、あなたがそれを必要としないときを知ることです。この場合、PHPの場合、正規表現を使用しないソリューションで十分です。

if (strrpos($str, '*') > 0) {
  // invalid position of *
}

JavaScriptの場合:

if (str.lastIndexOf('*') > 0) {
    // invalid position for *
}

基本的に、特殊文字の最後の位置を見つけます。文字列に表示され、最初の文字でない場合、条件内のコードが実行されます。

于 2012-06-05T13:00:37.190 に答える
3
^\*?[^*]+$
  • 文字列の^先頭から一致する平均
  • \*?オプションで一致します(0または1の一致を意味します*?
  • [^*]+一致しない1つ以上の文字に一致します*
  • $つまり、余分な文字列がないことを確認するために、一致は文字列の最後で終了する必要があり*ます

これは、 PHPおよびJavascriptで使用できます。

于 2012-06-05T13:02:30.600 に答える
2

あなたをそこに連れて行くべきです。

^\*[^\*]+$    // forces the first asterisk

^\*?[^\*]+$   // allows the first asterisk
于 2012-06-05T13:00:30.497 に答える
1

私がよく理解しているのであれば、*このように*をエスケープする必要があると思います。また、正規表現を文字列で記述している場合に備えて、この\\*を書くことを忘れないでください。

于 2012-06-05T13:20:34.260 に答える
0

このコードを試してください:

/^(\*)?[^*]+/

^記号はin the beginning

于 2012-06-05T12:59:00.700 に答える
0

この式を試してみてください。

^.?[^*]+$
于 2012-06-05T13:00:21.980 に答える
0

この正規表現を試してください:

/^\*[^\*]+$/g

これがjsFiddleの例です。

于 2012-06-05T13:03:17.450 に答える