1

非常に単純なテキストボックスをユーザーに提供しています。

<textarea name="text">ENTER YOUR TEXT, DUDE!</textarea>

場合によっては、ユーザーは次のように入力できます。

blablablatext blablabla $ 10 blablabla blablablatext

これは問題ありませんが、私がやりたいのは、ドル記号を数字の後に自動的に配置することです(またはその逆)。

blablablatext blablabla 10 $ blablabla blablablatext

基本的に、私がやりたいことは次のとおりです。

  1. 通貨記号があるかどうかを検出します
  2. 記号の直後に数字が表示されているかどうかを検出します
  3. たとえば、数字の直後に文字(または何も)が表示されていないかどうかを検出します
  4. 通貨記号を取り、数字と文字の間に配置します(または、数字の直後に配置します)。

それを行うための最良の方法は何ですか?そのようなことは可能ですか?

4

1 に答える 1

3

おそらく、これらすべてを正規表現にまとめることができます。

echo preg_replace('/\$\s*(\d+)(?=\s*[^$])/', '$1\$', $text);

これはすぐに使える簡単な例で、 $ の後に空白が続き、その後に数字が続き、別の $ ではなく空白が続き、それを[number] $に置き換えます。

正規表現を学ぶことをお勧めします。

于 2012-11-09T11:11:00.320 に答える