split () в классическом asp - PullRequest
       0

split () в классическом asp

3 голосов
/ 15 декабря 2011

У меня есть одна строка в классическом asp.

Dim str 
str = "http://stackoverflow.com/questions/ask/code-classic-asp-in-linux"

В приведенной выше строке я хочу текст после «кода» с помощью split () в классическом asp.

Результат должен быть: "- classic-asp-in-linux"

Ответы [ 5 ]

11 голосов
/ 15 декабря 2011

Нейл прав. Но в VBScript IndexOf эквивалент равен InStr.

Dim str 
str = "http://stackoverflow.com/questions/ask/code-classic-asp-in-linux"

'Split
Response.Write Split(str,"-", 2)(1) ' classic-asp-in-linux
'Mid & InStr
Response.Write Mid(str, InStr(str, "-")) ' -classic-asp-in-linux
3 голосов
/ 06 апреля 2015

Это действительно старый пост, я знаю, но, возможно, кто-то найдет это полезным ... Я воспринимаю фактический вопрос ОП как "как мне получить имя документа в конце URL?"Ответ состоит в том, чтобы получить все после последней косой черты .Здесь я использую InStrRev, чтобы найти последнюю косую черту, сохранить ее позицию и затем использовать функцию Right, чтобы захватить конец URL.

Dim str, tmp
str = "http://stackoverflow.com/questions/ask/code-classic-asp-in-linux"
tmp = InStrRev(str, "/")
str = Right(str, Len(str) - tmp)
Response.write str

Если URL имеет косую черту, это приведет кпроблема, поэтому при использовании вы захотите проверить эту возможность.

2 голосов
/ 15 декабря 2011

Вы должны сделать так:

Dim str, arrSplitted
str = "http://stackoverflow.com/questions/ask/code-classic-asp-in-linux"
arrSplitted = Split(str, "code-")

arrSplitted вернет массив, который содержит два узла, 0 и 1. Узел 1 должен содержать -classic-as-in-linux.

Response.Write arrSplitted(1)

Надеюсь, это сработало, несколько лет назад я использовал классический ASP.

1 голос
/ 15 декабря 2011
Dim str, arrSplitted, tmp
str = "http://stackoverflow.com/questions/ask/code-classic-asp-in-linux"
tmp = split(str, "code")
Response.Write(tmp(UBound(tmp))) 'return the last element of the array. 

Также вы можете использовать Response.Write (split (str, "code") (UBound (split (str, "code")))), но split выполняется дважды, поэтому используется переменная 'tmp'.

0 голосов
/ 10 февраля 2019

как альтернатива. Если ваша схема URL-адреса фиксирована, то вы можете просто заменить фиксированную часть на ничто.

Dim str 
str = "http://stackoverflow.com/questions/ask/code-classic-asp-in-linux"
str = Replace(str,"http://stackoverflow.com/questions/ask/code-","")
Response.write str
...