表单修剪多个空格并仅采用字母


form trim multiple spaces and take only alphabets

<label for="first_name">* First Name </label> 
<input type="text" name="first_name" maxlength="64" value=<?php echo formatPhone(clean_input($_POST['first_name']); ?>>

我有一个表格,我想在其中输入名字。我希望字段只采用字母(没有数字(。此外,当用户输入由多个空格分隔的John Doe之类的内容时,我希望它仅用一个空格分隔两个单词。我不确定如何在 php 中完成此操作。

这将只允许传递 ascii 名称并正确拆分输入:

if (preg_match("~^([A-Z][a-z]+'s*)+$~gm", $value)) {
    // valid
    $array_of_names = preg_split("~'s+~gm", $value);
    // or
    $normalized_name = preg_replace("~'s+~", " ", trim($value));
}