Разделить строку по символу, который не находится между определенными символами

Если вы боретесь из-за закругленных corners против subviews против masksToBounds, попробуйте использовать мою функцию:

- (UIView*)putView:(UIView*)view insideShadowWithColor:(UIColor*)color andRadius:(CGFloat)shadowRadius andOffset:(CGSize)shadowOffset andOpacity:(CGFloat)shadowOpacity
{
    CGRect shadowFrame; // Modify this if needed
    shadowFrame.size.width = 0.f;
    shadowFrame.size.height = 0.f;
    shadowFrame.origin.x = 0.f;
    shadowFrame.origin.y = 0.f;
    UIView * shadow = [[UIView alloc] initWithFrame:shadowFrame];
    shadow.userInteractionEnabled = NO; // Modify this if needed
    shadow.layer.shadowColor = color.CGColor;
    shadow.layer.shadowOffset = shadowOffset;
    shadow.layer.shadowRadius = shadowRadius;
    shadow.layer.masksToBounds = NO;
    shadow.clipsToBounds = NO;
    shadow.layer.shadowOpacity = shadowOpacity;
    [view.superview insertSubview:shadow belowSubview:view];
    [shadow addSubview:view];
    return shadow;
}

вызывают это на вашем представлении. будет ли ваш взгляд иметь закругленные углы, независимо от его размера, его форма - будет нарисована хорошая тень.

Просто сохраните возвращаемое значение функции, чтобы вы могли ссылаться на нее, когда вы хотите удалить таблицу (или, например, использовать insertSubview:aboveView:)

1
задан Denis Yalomist 17 January 2019 в 12:18
поделиться

1 ответ

Я бы использовал обходной путь.

  1. соответствуют всем <% & %> и заменяют его специальным символом (в моем случае _ подчеркивание), так что результат будет <% _ %>

  2. [ 1115] теперь разбиваем строку на & char

  3. и, наконец, заменяем специальный символ _ на &

[117 ]

const mySplit = (mystr) => {
  const regex = /<%(?!%>).*%>/gm;
  const matches = mystr.match(regex);

  const tmpreplace = matches.map(e => e.replace(/&/g,'_'));
  matches.forEach(e => mystr = mystr.replace(e,tmpreplace));

  return mystr.split('&').map(e => e.replace(/_/g,'&'));
}

console.log(mySplit('my&string=21<%253&124%> <&> &&'));
console.log(mySplit('new<%<&%235<%test&gg%>&test&f'));
console.log(mySplit('a&<%&qwer&>ty%>&af'));

0
ответ дан d-h-e 17 January 2019 в 12:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: