如何在PHP中识别以数值开头和结尾的字符串

如何在PHP中识别以数值开头和结尾的字符串,php,Php,我需要确定一个字符串以一个数值和7位长度开始和结束 Let-1000453或0984567。这两个字符串以数字值开头,以数字值结尾。如果任何字符串以任何字符开头,比如说-a234567,那么它将显示失败 请用PHP推荐 提前感谢您应该能够为此使用正则表达式: $count = preg_match ('/^[0-9].{5}[0-9]$/', $value) 这基本上为您提供了每一个以一个数字开头和结尾的字符串,中间有任意五个字符$count是找到的匹配数,非零表示匹配 如果需要不同的模式,只

我需要确定一个字符串以一个数值和7位长度开始和结束

Let-1000453或0984567。这两个字符串以数字值开头,以数字值结尾。如果任何字符串以任何字符开头,比如说-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";

是数值型的,风险不大。字符串“1e5”在科学记数法中可能表示10000,但可能不是

您的问题需要一个正则表达式

/[0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
还是更简单

/[0-9]{7}/

除了上面使用正则表达式的解决方案外,还应该使用以下方法。不过我还没有测试过

$result=TRUE

如果strlen$string==7 { $string\u arr=str\u split$string; if!ctype_digit$string_arr[0]&&ctype_digit$string_arr[6] $result=FALSE; } 其他的 $result=FALSE;


返回$result