RT,用clearsilver宏实现的replace,缺点是宏不能嵌套,类似只能调用一次的函数,cs这个东东,需要扩展的东西太多了。

<?cs def:replace(val, f, t) ?>
<?cs set:index=string.find(val, f)?>

<?cs if:index>-1 ?>
<?cs set:subLen=string.length(f) ?>
<?cs set:begin=string.slice(val, 0, index) ?>

<?cs set:end=string.slice(val, 0+subLen+index, string.length(val))?>
<?cs set:val=begin+t+end?>

<?cs if:string.find(val, f)>-1 ?>
<?cs call:replace(val, f, t)?>
<?cs else?>
<?cs var:val?>
<?cs /if?>
<?cs else?>
<?cs var:val?>
<?cs /if?>
<?cs /def?>

<?cs def:strWarp2br(val)?>
<?cs if:string.find(val, "\\r\\n")>-1?>
<?cs call:replace(val, "\r\n", "x<br/>") ?>
<?cs elif:string.find(val, "\\n")>-1?>
<?cs call:replace(val, "\n", "y<br/>") ?>
<?cs elif:string.find(val, "\\r")>-1?>
<?cs call:replace(val, "\r", "z<br/>") ?>
<?cs else?>
<?cs var:val?>
<?cs /if?>
<?cs /def?>

 

相关文章:

  • 2022-12-23
  • 2022-02-02
  • 2021-06-15
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
  • 2022-01-26
  • 2022-03-05
猜你喜欢
  • 2021-12-10
  • 2021-06-25
  • 2021-08-16
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-05-21
相关资源
相似解决方案