Skip to content
Snippets Groups Projects
Commit e1e893d3 authored by Kevin P. Fleming's avatar Kevin P. Fleming
Browse files

enhance documentation for string chopping (bug #4049)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent f933db8c
No related branches found
No related tags found
No related merge requests found
...@@ -69,28 +69,49 @@ _______________________________ ...@@ -69,28 +69,49 @@ _______________________________
REMOVING CHARACTERS FROM STRING REMOVING CHARACTERS FROM STRING
------------------------------- -------------------------------
If you want to remove the first N characters from a string, you just The format for removing characters from a variable can be expressed as:
add a colon and the number of characters, like
${variable_name[:offset[:length]]}
If you want to remove the first N characters from the string assigned
to a variable, simply append a colon and the number of characters to
remove from the beginning of the string to the variable name.
;Remove the first character of extension, save in "number" variable ;Remove the first character of extension, save in "number" variable
exten => _9X.,1,setvar(number=${EXTEN:1}) exten => _9X.,1,SetVar(number=${EXTEN:1})
Assuming we've dialed 918005551234, the value saved to the 'number' variable
would be 18005551234. This is useful in situations when we require users to
dial a number to access an outside line, but do not wish to pass the first
digit.
If you use a negative offset number, Asterisk starts counting from the end
of the string and then removes everything before the new position. The following
example will save the numbers 1234 to the 'number' variable, still assuming
we've dialed 918005551234.
;Remove everything before the last four digits of the dialed string
exten => _9X.,1,SetVar(number=${EXTEN:-4})
A second colon limits the number of characters used from the original We can also limit the number of characters from our offset position that we
string. wish to use. This is done by appending a second colon and length value to the
;Strip five characters from the start of string, use only two variable name. The following example will save the numbers 555 to the 'number'
; (character 6 and 7 in the original string) variable.
exten => 1000,4,setvar(skrep=${STRING:5:2})
You can also count from the end of the string by giving a negative ;Only save the middle numbers 555 from the string 918005551234
position: exten => _9X.,1,SetVar(number=${EXTEN:5:3})
;Use the two first of the three last characters in the account code The length value can also be used in conjunction with a negative offset. This
exten => 4500,4,setvar(acc=${ACCOUNTCODE:-3:2}) may be useful if the length of the string is unknown, but the trailing digits
are. The following example will save the numbers 555 to the 'number' variable,
even if the string starts with more characters than expected (unlike the
previous example).
Or ;Save the numbers 555 to the 'number' variable
;Use the last three digits of the phone number exten => _9X.,1,SetVar(number=${EXTEN:-7:3})
exten => 6112,4,goto(${EXTEN:-3},1)
If a negative length value is entered, it is ignored and Asterisk will match
to the end of the string.
___________________________ ___________________________
EXPRESSIONS: EXPRESSIONS:
--------------------------- ---------------------------
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment