mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-05 12:16:00 +00:00
enhance documentation for string chopping (bug #4049)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@5486 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -69,28 +69,49 @@ _______________________________
|
||||
REMOVING CHARACTERS FROM STRING
|
||||
-------------------------------
|
||||
|
||||
If you want to remove the first N characters from a string, you just
|
||||
add a colon and the number of characters, like
|
||||
The format for removing characters from a variable can be expressed as:
|
||||
|
||||
${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
|
||||
exten => _9X.,1,setvar(number=${EXTEN:1})
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:1})
|
||||
|
||||
A second colon limits the number of characters used from the original
|
||||
string.
|
||||
;Strip five characters from the start of string, use only two
|
||||
; (character 6 and 7 in the original string)
|
||||
exten => 1000,4,setvar(skrep=${STRING:5:2})
|
||||
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.
|
||||
|
||||
You can also count from the end of the string by giving a negative
|
||||
position:
|
||||
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.
|
||||
|
||||
;Use the two first of the three last characters in the account code
|
||||
exten => 4500,4,setvar(acc=${ACCOUNTCODE:-3:2})
|
||||
;Remove everything before the last four digits of the dialed string
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:-4})
|
||||
|
||||
Or
|
||||
;Use the last three digits of the phone number
|
||||
exten => 6112,4,goto(${EXTEN:-3},1)
|
||||
We can also limit the number of characters from our offset position that we
|
||||
wish to use. This is done by appending a second colon and length value to the
|
||||
variable name. The following example will save the numbers 555 to the 'number'
|
||||
variable.
|
||||
|
||||
;Only save the middle numbers 555 from the string 918005551234
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:5:3})
|
||||
|
||||
The length value can also be used in conjunction with a negative offset. This
|
||||
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).
|
||||
|
||||
;Save the numbers 555 to the 'number' variable
|
||||
exten => _9X.,1,SetVar(number=${EXTEN:-7:3})
|
||||
|
||||
If a negative length value is entered, it is ignored and Asterisk will match
|
||||
to the end of the string.
|
||||
___________________________
|
||||
EXPRESSIONS:
|
||||
---------------------------
|
||||
|
Reference in New Issue
Block a user