我检索我的尺寸产品的nexts值:30X50或20x20
如果此值包含字符x或X且仅包含数字,我想添加“cm”度量。
@if($myvalue contains only the character x and numbers)
{{ $myvalue }} cm // like 20x20cm
@endif
我需要一个正则表达式。我试着用这个:
@if (preg_match('/^\d*(x|X){1}\d*$/',$item->name)) cm.@endif
但不起作用
答案 0 :(得分:0)
不要在如此微不足道的情况下使用正则表达式。例如,您可以编写自己的域解析函数。
/**
* Parse dimension
*
* @return array [dimX, dimY] or empty array when invalid input
*/
function parse(string $meta): array {
$parseTree = explode('x', strtolower($meta));
if (2 != \count($parseTree)
|| !ctype_digit($parseTree[0])
|| !ctype_digit($parseTree[1])) {
return [];
}
return $parseTree;
}
/**
* Test {@see parse}
* @throws \LogicException When test failed
*/
function testParse() {
$dataProvider = [
['20x50', [20, 50]],
['20X50', [20, 50]],
['20z50', []],
['a20x50', []],
['20xa50', []],
];
foreach($dataProvider as $serie) {
if (parse($serie[0]) != $serie[1]) {
throw new \LogicException('Test failed');
}
}
}
testParse();