如何在php中分隔字符串和数字

时间:2014-06-24 07:30:26

标签: javascript php jquery

我从mysql中检索一些像(A00001)这样的字符串。我想将这些分开,如A和00001。

分离后值增加一个(A00002),当点击提交按钮时,这些过程就会完成。

5 个答案:

答案 0 :(得分:2)

这样的事情可以做这项工作

$string = "A00001";

preg_match_all('/[^\d]+/', $string, $textArray);
preg_match('/\d+/', $string, $numbersArray);

$text = $textArray[0];
$number = $numbersArray[0];

最初来自Split String into Text and Number

答案 1 :(得分:1)

var text = "A00001";
var letters = text.replace(/[^a-z]/gi, ""); 
var digits = text.replace(/\D/g, "");
alert(letters);
alert(digits);

check this fiddle

答案 2 :(得分:1)

$value = 'A00001';
$letter = substr($value, 0, 1);
$number = (int) substr($value, 1)

$number++;

$value = $letter.str_pad($number, 5, '0', STR_PAD_LEFT);

str_pad()用于在数字开头添加额外0,如果它少于5个字符。

答案 3 :(得分:0)

如果你知道格式是相同的(1个字母和5个数字),你可以使用它。

$string = 'A00001';
$letter = substr($string, 0, 1);
$number = substr($string, 1);

如果有任何字母和任何数字,请使用正则表达式。

对于PHP来说,对于JS来说它会是类似的。

答案 4 :(得分:0)

用什么语言?如果要在PHP中提取,可以使用正则表达式。这个例子打破了字母和数字,并给出了一个关联数组:

preg_match('/^(?<letter>\w)(?<digits>\d+)$/', "A00001", $matches);
var_dump($matches);

<强>输出:

Array
(
    [0] => A00001
    [letter] => A
    [1] => A
    [digits] => 00001
    [2] => 00001
)

在JavaScript中,您可以采用相同的技术:

var str = "A00001";
var matches = str.match(/(\w)(\d+)/);
console.log(matches);  // ["A00001", "A", "00001"]