亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何檢查變量是否具有語法以及如何將其拆分為數組?

如何檢查變量是否具有語法以及如何將其拆分為數組?

PHP
慕田峪7331174 2023-03-11 16:46:23
我的數據庫字段中有以下字符串“L{id_extern}S{LocationId}”。此字符串是輸入字段的可接受語法。在這個例子中只有輸入應該接受滿足“ L something S something”例如<input name="myinput" value="12345"> - is not correct<input name="myinput" value="L12345"> - is not correct<input name="myinput" value="L123S45"> - is correct我必須將值 (12345) 與語法字符串進行比較?!皗...}”之間的部分可以有無限的(最少需要 1 個)數字和字母。首先,我需要拆分語法字符串并使其在多維數組中可用,例如$myArray['placeholder1']=id_extern;$myArray['placeholder2']=LocationId;我如何將字符串拆分成這種數組的一種?我如何將輸入字段的值與我想要的語法 L{id_extern}S{LocationId} 進行比較?我認為 pregmatch 可以提供幫助,但我不知道它是如何工作的。
查看完整描述

1 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

您可以執行preg_match_all(),其中使用以下正則表達式需要至少 1 個(但可能有多個)字符,它是字母 az 或 AZ 或介于 0-9 之間和L之后S的數字S


就像是:


<?php


$strings = ['12345', 'L12345', 'L1S1', 'LS1',? 'L123S45', 'L1x23S4yZY5', 'L1x!23S4y5'];


foreach($strings as $string) {

? ? $hasMatches = preg_match_all('/^L([0-9a-zA-Z]+)S([0-9a-zA-Z]+)/m', $string, $matches, PREG_SET_ORDER, 0);

? ? if(filter_var($hasMatches, FILTER_VALIDATE_BOOLEAN)) { // converts $hasMatches to boolean

? ? ? ? echo 'THERE IS A MATCH: "' . $matches[0][0] . '"' . "\n";

? ? ? ? echo '1st part: ' . $matches[0][1] . "\n";

? ? ? ? echo '2nd part: ' . $matches[0][2] . "\n\n";

? ? }

}

上面的輸出是:


THERE IS A MATCH: "L1S1"

1st part: 1

2nd part: 1


THERE IS A MATCH: "L123S45"

1st part: 123

2nd part: 45


THERE IS A MATCH: "L1x23S4yZY5"

1st part: 1x23

2nd part: 4yZY5



查看完整回答
反對 回復 2023-03-11
  • 1 回答
  • 0 關注
  • 156 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號