我从mysql中检索一些像(A00001)这样的字符串。我想将这些分开,如A和00001。
分离后值增加一个(A00002),当点击提交按钮时,这些过程就会完成。
答案 0 :(得分:2)
这样的事情可以做这项工作
$string = "A00001";
preg_match_all('/[^\d]+/', $string, $textArray);
preg_match('/\d+/', $string, $numbersArray);
$text = $textArray[0];
$number = $numbersArray[0];
答案 1 :(得分:1)
var text = "A00001";
var letters = text.replace(/[^a-z]/gi, "");
var digits = text.replace(/\D/g, "");
alert(letters);
alert(digits);
答案 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"]