質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Revel

Revelは、Go言語のフレームワーク。レスポンスが高速であることが特徴で、Webアプリケーションに必要な機能も豊富です。ルーティングやバリデーション、テンプレートエンジン、DB処理、テスト支援といった多くの機能を備えています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Q&A

解決済

2回答

1408閲覧

Golangでバリデーションの記述方法

退会済みユーザー

退会済みユーザー

総合スコア0

Revel

Revelは、Go言語のフレームワーク。レスポンスが高速であることが特徴で、Webアプリケーションに必要な機能も豊富です。ルーティングやバリデーション、テンプレートエンジン、DB処理、テスト支援といった多くの機能を備えています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

0グッド

0クリップ

投稿2021/05/21 01:42

編集2021/05/21 01:43

int型の変数のバリデーションをしようとしています。

もし変数に文字が入力されている場合、その入力値が整数でなければエラーメッセージを表示し、もしその入力値が0以下であればエラーメッセージを表示する。という内容にしたく以下の様に記述しました。

Golang

1func (req *test) Validate(v *revel.Validation) { 2 if len(testnum) > 0 { 3 v.Match(testnum, regexp.MatchString("^[0-9]+$")). 4 Message("エラーメッセージ") 5 6 v.MinSize(testnum, 1). 7 Message("エラーメッセージ2") 8 } 9}

しかし上記状態だとinvalid argument testnum (type int) for lenというエラーが表示され、

Golang

1 if (testnum > 0) {

とするとcannot use testnum (type int) as type string in argument to v.Match" というエラーが表示されます。

また、調べて見つけた以下サイトには数値を確認する様な項目が見当たりませんでした。
https://qiita.com/geniusmaaakun/items/b91aa9d0cd47c194f78d

int型でバリデーションをするにはどうすればいいのでしょうか?
どなたかお分かりになる方、ご教授いただけますとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

int型はそもそも文字種は必須チェックをいれなくても勝手にやってくれる型でした。
0以下の場合のみの記述にしたら成功しました。

投稿2021/05/21 05:24

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

invalid argument testnum (type int) for len

cannot use testnum (type int) as type string in argument to v.Match

メッセージからしてtestnumは文字列ではなさそうですが、
やりたいのは(intではなく)文字列のバリデーションなのでは?

投稿2021/05/21 03:41

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/05/21 05:26

ご回答ありがとうございます。 やりたいのはint型で間違い無いのですが、そもそもint型は文字種チェックをせずとも整数値以外を入力するとエラーになるので必要ありませんでした。 妙な質問になってしまいすみませんでした。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問