【问题标题】:how to separate the string and number in php [duplicate]如何在php中分隔字符串和数字[重复]
【发布时间】:2014-08-14 08:54:48
【问题描述】:

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

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

【问题讨论】:

  • 您的数据是否始终采用这种格式:6 个字符(1 个字母 + 5 个数字)?
  • 郑重声明,你不需要篡改它,PHP 可以处理这样的递增字符串。 $a = "A00001"; var_dump(++$a) 将导致“A00002”。
  • 请为这个问题提出建议....从表格行中获取值并设置到文本框中。查看我的 jsfiddle 文件 [jsfiddle.net/yXFZs]

标签: javascript php jquery


【解决方案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()如果少于5个字符,则在数字开头添加额外的0。

【讨论】:

    【解决方案2】:

    用什么语言?如果要在 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"]
    

    【讨论】:

    • 请为这个问题提出建议....从表格行中获取值并设置到文本框中。查看我的 jsfiddle 文件 [jsfiddle.net/yXFZs]
    【解决方案3】:

    这样的事情可能会起作用

    $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

    【讨论】:

      【解决方案4】:

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

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

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

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

      【讨论】:

      • 请为这个问题提出建议....从表格行中获取值并设置到文本框中。查看我的 jsfiddle 文件 [jsfiddle.net/yXFZs]
      【解决方案5】:
      var text = "A00001";
      var letters = text.replace(/[^a-z]/gi, ""); 
      var digits = text.replace(/\D/g, "");
      alert(letters);
      alert(digits);
      

      check this fiddle

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-25
        • 2021-04-29
        • 2014-12-17
        • 2014-01-10
        • 2014-06-13
        相关资源
        最近更新 更多