首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从Webspeed URL的名称-值对中删除特殊字符?

如何从Webspeed URL的名称-值对中删除特殊字符?
EN

Stack Overflow用户
提问于 2013-12-03 13:27:23
回答 2查看 5.3K关注 0票数 0

我需要删除Webspeed URL中包含名称-值pairs..How的回车和换行符,可以这样做吗?有什么想法请提出来!

EN

回答 2

Stack Overflow用户

发布于 2013-12-03 16:25:22

要替换字符,可以使用replace函数

代码语言:javascript
复制
REPLACE function
Returns a string with specified substring replacements.
Syntax 
REPLACE ( source-string , from-string , to-string ) 

示例:

代码语言:javascript
复制
DEFINE VARIABLE cTxt    AS CHARACTER   NO-UNDO FORMAT "x(20)".
DEFINE VARIABLE cNewTxt AS CHARACTER   NO-UNDO FORMAT "x(20)".

cTxt = "abc123abc123abc123".

cNewTxt = REPLACE(cTxt, "a", "-").

DISPLAY cNewTxt .

您可以使用控制代码~n确定新行的目标

代码语言:javascript
复制
REPLACE(cString, "~n", "replacing character").

或以个体%0d (十进制ascii代码13)和%0a's (十进制ascii代码10)为目标。

代码语言:javascript
复制
REPLACE(cString, CHR(13), "replacing character").
REPLACE(cString, CHR(10), "replacing character").
票数 2
EN

Stack Overflow用户

发布于 2013-12-03 22:21:07

我最近需要做一些类似的事情,并发现下面的方法非常方便。这可能有点极端--它删除了所有控制代码和任何高于ascii126的代码。但是您可以很容易地调整这些限制。(我的用途是填充文本字段--所以所有这些内容对我来说都是非法输入。)

代码语言:javascript
复制
define variable hd as character no-undo initial "0123456789ABCDEF".

function hex2char returns character ( h as character ):

  define variable i as integer no-undo.

  if length( h ) <> 2 or index( hd, substring( h, 1, 1 )) < 0 or index( hd, substring( h, 2, 1 )) < 0 then
    return "".

  i = ((( index( hd, substring( h, 1, 1 )) - 1 ) * 16 ) +
          index( hd, substring( h, 2, 1 )) - 1
      ).

  if i < 32 or i >= 127 then
    return "".
   else
    return chr( i ).

end.

function url-decode returns character ( input url as character ):

  define variable xurl as character no-undo.
  define variable zurl as character no-undo.

  define variable pct as integer no-undo.

  /* fix known trouble makers
   */

  assign
    xurl = replace( url, "+", " " )
    xurl = replace( xurl, "%0A%0D", "~n" )      /* <LF><CR>     */
    xurl = replace( xurl, "%0D%0A", "~n" )      /* <CR><LF>     */
    xurl = replace( xurl, "%0D",    "~n" )      /* <CR>         */
  .

  pct  = index( xurl, "%" ).

  do while pct > 0 and xurl > "":
    assign
      zurl = zurl + substring( xurl, 1, pct - 1 ) + hex2char( substring( xurl, pct + 1, 2 ))
      xurl = substring( xurl, pct + 3 )
      pct  = index( xurl, "%" )
    .
  end.

  return zurl + xurl.

end.

display url-decode( sampleUrl ) view-as editor size 60 by 25.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20343564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档