簡體   English   中英

如何在PHP中標識字符串以數字值開頭和結尾

[英]How to identify a string starts and ends with a numeric value in PHP

我需要確定字符串以數字值和7位長開頭和結尾。

10004530984567 這兩個字符串以數字開頭並以數字結尾。如果任何字符串以任何字符開頭,則說a234567比它顯示失敗。

請在PHP中提出建議。

提前致謝

您應該能夠為此使用正則表達式:

$count = preg_match ('/^[0-9].{5}[0-9]$/', $value)

這基本上為您提供了每個以數字開頭和結尾的字符串,介於中間的任何五個字符。 $count是找到的非零匹配項的數目,表示匹配。

如果要使用其他模式,只需調整正則表達式即可。 例如,七個字符,所有數字均為'/^[0-9]{7}$/'

請記住,我很老,仍然使用[0-9]表示數字,因為並非所有的正則表達式引擎都支持\\d表示法,但是PHP可以使用它(例如'/^\\d{7}$/' )。

你只想要數字嗎?

然后這應該工作

if (preg_match("/^[0-9]{7}$/", $argv[1]))
  {
    echo "Ok";
  }

如果您還想在字符串中包含其他可能的值,則paxdiablo的正則表達式是正確的。

嘗試這個

<?php

$string = "984f1a3";

if(strlen($string) <= 7){
    if(!is_numeric(substr($string, 0, 1)) and !is_numeric(substr($string, strlen($string)-1, strlen($string)))) echo "FAIL";
    else echo "Success";
}
else echo "FAIL";

is_numeric()具有中等風險。 字符串“ 1e5”在科學計數法中可能表示10000,但可能並非如此。

您的問題需要一個正則表達式。

/[0-9][0-9][0-9][0-9][0-9][0-9][0-9]/

或更簡單

/[0-9]{7}/

除了上面使用正則表達式的解決方案之外,以下內容也應做。 我還沒有測試!

$result = TRUE;

if (strlen($string) == 7) { $string_arr = str_split($string); if (!(ctype_digit($string_arr[0]] && ctype_digit($string_arr[6]))) $result = FALSE;
} else $result = FALSE;

返回$ result;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM