创建对象时如何包含此正则表达式?
How do I include this regular expression when creating an object?
在我的 $plates = explode(';', $plates);
之后,我想在创建新的 $dossier
时包含另一个正则表达式(在我的 foreach 中):
$minus = preg_replace('~[-]~', '', $license_plates);
我该怎么做?
这是我的代码:
public function addLicensePlates(Request $request)
{
$product_id = $request->input('product_id');
$license_plates = $request->input('license_plates');
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', $license_plates); // \s+|[.,:;*/_]
$plates = explode(';', $plates);
foreach($plates as &$plate) {
$dossier = new Dossier;
$dossier->license_plate = trim($plate);
$dossier->product_id = $product_id;
$dossier->save();
}
}
PS:我不想将 -
添加到 $plates
表达式,而是在爆炸之后。
我建议按如下方式编辑现有功能:
preg_replace
稍后在输入字符串上使用 trim()
以摆脱空值
- 稍后在
foreach
块中使用 str_replace
替换连字符。
参见 PHP demo:
$license_plates = " WORD-HERE 36-LXD-5";
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', trim($license_plates)); // trim the incoming value
$plates = explode(';', $plates);
foreach($plates as &$plate) {
$license_plate = str_replace('-', '', $plate); // Remove hyphens
echo $license_plate. "\n";
}
输出:WORDHERE
和 36LXD5
。
在我的 $plates = explode(';', $plates);
之后,我想在创建新的 $dossier
时包含另一个正则表达式(在我的 foreach 中):
$minus = preg_replace('~[-]~', '', $license_plates);
我该怎么做?
这是我的代码:
public function addLicensePlates(Request $request)
{
$product_id = $request->input('product_id');
$license_plates = $request->input('license_plates');
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', $license_plates); // \s+|[.,:;*/_]
$plates = explode(';', $plates);
foreach($plates as &$plate) {
$dossier = new Dossier;
$dossier->license_plate = trim($plate);
$dossier->product_id = $product_id;
$dossier->save();
}
}
PS:我不想将 -
添加到 $plates
表达式,而是在爆炸之后。
我建议按如下方式编辑现有功能:
preg_replace
稍后在输入字符串上使用trim()
以摆脱空值- 稍后在
foreach
块中使用str_replace
替换连字符。
参见 PHP demo:
$license_plates = " WORD-HERE 36-LXD-5";
$plates = preg_replace('~\s+|[.,:;*/_]~', ';', trim($license_plates)); // trim the incoming value
$plates = explode(';', $plates);
foreach($plates as &$plate) {
$license_plate = str_replace('-', '', $plate); // Remove hyphens
echo $license_plate. "\n";
}
输出:WORDHERE
和 36LXD5
。