Задать вопрос
VGrabko
@VGrabko
Golang, Php, Js

Как юзать регулярки?

Вот читал я в интернетах что в Go есть такая прикольная штука как компиляция регулярок. (В доках нашел MustCompile) но как это юзать так и не понял. Допустим на js у меня есть

var loginRex = /^[.\-\a-zA-Z0-9]+$/i;
if(!loginRex.test(login)){
//обработаем ошибку валидации
}

Как тоже самое написать но только на Go?
  • Вопрос задан
  • 236 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 3
fastpars
@fastpars
https://golang.org/pkg/regexp/
В конце Overview есть Example:
package main

import (
	"fmt"
	"regexp"
)

func main() {
	// Compile the expression once, usually at init time.
	// Use raw strings to avoid having to quote the backslashes.
	var validID = regexp.MustCompile(`^[a-z]+\[[0-9]+\]$`)

	fmt.Println(validID.MatchString("adam[23]"))
	fmt.Println(validID.MatchString("eve[7]"))
	fmt.Println(validID.MatchString("Job[48]"))
	fmt.Println(validID.MatchString("snakey"))
}


P.S. тебе не нужен ignore case т.к. [a-zA-Z]
Ответ написан
VGrabko
@VGrabko Автор вопроса
Golang, Php, Js
Или так
package validator

import "regexp"

const (
	Email string = "^[\\w\\.\\d-_]+@[\\w\\.\\d-_]+\\.\\w{2,4}$"
	Login string = "^[.\\-\\a-zA-Z0-9]+$"
)

var (
	rxEmail = regexp.MustCompile(Email)
	rxLogin = regexp.MustCompile(Login)
)

func IsEmail(str string) bool {
	return rxEmail.MatchString(str)
}

func IsLogin(str string) bool {
	return rxLogin.MatchString(str)
}
Ответ написан
Комментировать
Стесняюсь спросить, а почему MustCompile?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы