php 如何处理已经达到13个字符限制的字符串,其中没有空格?

ruyhziif  于 12个月前  发布在  PHP
关注(0)|答案(3)|浏览(146)

我有几个字符串需要解析。字符串应该用插入字符分隔,但是,如果字符串中允许的字符数达到最大值,插入字符将被省略。我需要找到一种方法来处理这个问题。
这里有一个例子。
规则是最多不能超过13个字符。在下面的字符串中,应该有一个插入字符的地方有一个“S”。

MASSYBU HILLSMARY

字符串
这是一个未达到13个字符限制的字符串示例

CYPRUS^TOM


如何处理第一个例子中没有字符串的13个字符限制的字符串?

qcbq4gxm

qcbq4gxm1#

看起来像一个正则表达式的作业

$str = "whatever^abcabcabcabcxABCABCABCABCXDEF^";

preg_match_all('~[^^]{1,13}~', $str, $m);
var_dump($m[0]);

字符串
输出

[0]=>  string(8) "whatever"
  [1]=>  string(13) "abcabcabcabcx"
  [2]=>  string(13) "ABCABCABCABCX"
  [3]=>  string(3) "DEF"

py49o6xq

py49o6xq2#

首先将字符串限制为13个字符(例如,使用substr),然后查找终止符。这就是您要查找的内容吗?
或者,如果您正在使用indexOf查找字符,请将结果限制为13。这实际上取决于您的代码的外观。
编辑:让我把它拼出来。

$Length = Min(strlen($String), 13);
if (($TerminatorIndex = strpos($String, "^")) !== FALSE) {
  $Length = Min($Length, $TerminatorIndex);
}

return substr($String, 0, $Length);

字符串

roejwanj

roejwanj3#

如果你需要删除额外的字符,你可以这样做:

$n = 13;

if(strlen($str) > $n)
{
    //do some alteration example
    $str = substr($str, 0, $n);
}

字符串

相关问题