 |
|

24.01.2022, 17:55
|
|
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами:
2862489
Репутация:
18
|
|
Добрый день, пишу бота вк и хотел бы найти замену на регулярные вырежния
JavaScript :
Код:
bot
.
hear
(
/^(?:!test) (.*)$/i
,
msg
=>
{
msg
.
send
(
`${msg.$match[1]}`
)
}
)
В общем проблема в том что когда я делаю 2 и более регулярных выражения, то-есть (.*) (.*) То в таком случае оно принимает одно слово, это и логично, но как сделать так что бы одно из регулярных выражений принимало несколько слов? без ограничений
|
|
|

24.01.2022, 18:26
|
|
Познавший АНТИЧАТ
Регистрация: 04.07.2019
Сообщений: 1,297
С нами:
3611265
Репутация:
183
|
|
с js особо не дружу
пример ввода:
Код:
!test string1 string2
регулярка:

|
|
|

24.01.2022, 18:27
|
|
Флудер
Регистрация: 10.10.2016
Сообщений: 9,228
С нами:
5046982
Репутация:
183
|
|
|
|
|

24.01.2022, 18:34
|
|
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами:
2862489
Репутация:
18
|
|
Го реально работает спасибки, ещё такой вопрос можно ли как-то проверку на эти регулярки сделать то есть допустим как пример
if(!msg.$match[2]) return msg.send('Вы не указали параметр')
|
|
|

24.01.2022, 18:50
|
|
Участник форума
Регистрация: 23.04.2020
Сообщений: 278
С нами:
3188613
Репутация:
98
|
|
регулярки может и удобно, но я предлагаю реализовать немного по удобнее, например так:
JavaScript :
Код:
if
(
ctx
.
text
.
startsWith
(
prefix
)
)
{
let
msgToParse
=
ctx
.
text
.
slice
(
prefix
.
length
)
// чикчирикаем префикс
let
params
=
msgToParse
.
split
(
" "
)
// парсим строку
let
cmd
=
params
[
0
]
// получаем переменную
// все остальные параметры - params[1], params[2] и так далее, в зависимости от того, что нужно сделать
}
так, я думаю будет удобнее работать с параметрами
вот, к примеру реализация простейшей команды, которая будет приветствовать пользователя(я не претендую на красивый код, давно писал, сам знаю что фигово написано, лучше промисом сделать)
JavaScript :
Код:
if
(
cmd
==
"get"
&&
params
[
1
]
.
length
!=
0
)
{
let
user
await
vk
.
api
.
users
.
get
(
{
user_ids
:
getIdFromString
(
params
[
1
]
)
}
)
.
then
(
res
=>
{
user
=
res
}
)
console
.
log
(
user
[
0
]
.
first_name
)
if
(
user
)
{
ctx
.
send
(
`Hello, [id${user[0].id}|${user[0].first_name}]`
)
}
}
|
|
|

24.01.2022, 18:58
|
|
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами:
2862489
Репутация:
18
|
|
Сообщение от Liquit
регулярки может и удобно, но я предлагаю реализовать немного по удобнее, например так:
JavaScript :
Код:
if
(
ctx
.
text
.
startsWith
(
prefix
)
)
{
let
msgToParse
=
ctx
.
text
.
slice
(
prefix
.
length
)
// чикчирикаем префикс
let
params
=
msgToParse
.
split
(
" "
)
// парсим строку
let
cmd
=
params
[
0
]
// получаем переменную
// все остальные параметры - params[1], params[2] и так далее, в зависимости от того, что нужно сделать
}
так, я думаю будет удобнее работать с параметрами
вот, к примеру реализация простейшей команды, которая будет приветствовать пользователя(я не претендую на красивый код, давно писал, сам знаю что фигово написано, лучше промисом сделать)
JavaScript :
Код:
if
(
cmd
==
"get"
&&
params
[
1
]
.
length
!=
0
)
{
let
user
await
vk
.
api
.
users
.
get
(
{
user_ids
:
getIdFromString
(
params
[
1
]
)
}
)
.
then
(
res
=>
{
user
=
res
}
)
console
.
log
(
user
[
0
]
.
first_name
)
if
(
user
)
{
ctx
.
send
(
`Hello, [id${user[0].id}|${user[0].first_name}]`
)
}
}
Очень заморочено, код у меня большой, и всё подстроить под это будет очень сложно потому-что регулярки у меня используется почти везде
|
|
|

24.01.2022, 19:09
|
|
Участник форума
Регистрация: 23.04.2020
Сообщений: 278
С нами:
3188613
Репутация:
98
|
|
Сообщение от Kecer
Очень заморочено, код у меня большой, и всё подстроить под это будет очень сложно потому-что регулярки у меня используется почти везде
ну переделай остальное, так код хотя бы становится более читабельней
|
|
|

24.01.2022, 19:30
|
|
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами:
2862489
Репутация:
18
|
|
поспешил я с выводами, оно так же криво работает как и работало ранее, мб чёто не так делаю можно пример?
|
|
|

24.01.2022, 19:31
|
|
Участник форума
Регистрация: 18.12.2018
Сообщений: 163
С нами:
3896797
Репутация:
18
|
|
мужики подобная ***ня приносит свои плоды в виде бабок?
|
|
|

24.01.2022, 19:37
|
|
Участник форума
Регистрация: 05.12.2020
Сообщений: 241
С нами:
2862489
Репутация:
18
|
|
Сообщение от feelzyourertry
мужики подобная ***ня приносит свои плоды в виде бабок?
Ты хочешь что бы я тебе заплатил денег за то что ты уделишь мне 3 - 4 минуты?
|
|
|
|
 |
|
Предыдущая тема
Следующая тема
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|