'Name'というフォームフィールドがありますが、preg式を使用して、送信をFirst Name&LastNameとしてDBに保存したいと思います。
フィールドに「JohnSmith」という名前を入力した場合、正規表現がこれをFirst Name-John Surname-Smithにストリップする方法を説明できますか?
前もって感謝します
単純なケースでは、名前を空白で分割したい場合があります。
$name = "John Smith";
$nameParts = explode(' ',$name);
var_dump($nameParts);
より複雑なケース(タイトル/ミドルネームなど)では、複数の入力フィールドを使用せざるを得ない場合があります。
$names = explode(" ", $POST['name']);
$firstName = $name[0];
$lastName = $name[1];
しかし、これは絶対に残忍な考えです。名と名前のフォームフィールドを作成するだけです。ある時点で誰かがアルフレッドEニューマンのようなものを入れて、あなたは彼らのイニシャルネームまたはミドルネームをラストネームとして使うことになることを保証します。
使用をsplit
優先する(バージョンphp <5.3.0)、または関数explode
のエイリアスですsplit
。この場合、フルネームをスペース文字で分割する必要があります。' '
var $fullname = "John Smith";
var $splitfullname = $fullname.split(' ');
var $firstname = $splitfullname[0];
var $lastname = $splitfullname[1];
-
var $fullname = "John Smith";
var $splitfullname = explode(' ', $fullname);
var $firstname = $splitfullname[0];
var $lastname = $splitfullname[1];
名とフルネームをキャッチするフォームを作成する場合は、フルネーム入力フィールドを2つの入力フィールド(名と姓)に分割することをお勧めします。
使用explode
:
<?php
$fullname='John Smith';
list ($firstName,$lastName)=explode(' ',$fullname);
echo 'First name: '.$firstName.PHP_EOL;
echo 'Last name: '.$lastName.PHP_EOL;
他の誰かが同様の問題を抱えている場合に備えて、この関数を作成しました-すべてのアドバイス担当者に感謝します!