Skip to content

Commit d39a48d

Browse files
committed
Add number n name
1 parent ad3cecf commit d39a48d

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

starport/pkg/multiformatname/multiformatname.go

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,15 @@ func CheckName(name string) error {
3838
}
3939

4040
// check characters
41-
for _, c := range name {
41+
c := name[0]
42+
authorized := ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z')
43+
if !authorized {
44+
return fmt.Errorf("name cannot contain %v as first character", string(c))
45+
}
46+
47+
for _, c := range name[1:] {
4248
// A name can contains letter, hyphen or underscore
43-
authorized := ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || c == '-' || c == '_'
49+
authorized := ('a' <= c && c <= 'z') || ('A' <= c && c <= 'Z') || ('0' <= c && c <= '9') || c == '-' || c == '_'
4450
if !authorized {
4551
return fmt.Errorf("name cannot contain %v", string(c))
4652
}

starport/pkg/multiformatname/multiformatname_test.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ func TestNewMultiFormatName(t *testing.T) {
1818
{"foo_-_bar", "fooBar", "FooBar", "foo---bar"},
1919
{"foo_-_Bar", "fooBar", "FooBar", "foo---bar"},
2020
{"fooBAR", "fooBAR", "FooBAR", "foo-bar"},
21+
{"fooBar123", "fooBar123", "FooBar123", "foo-bar-123"},
2122
}
2223

2324
// test cases
@@ -55,7 +56,9 @@ func TestNewMultiFormatName2(t *testing.T) {
5556
cases := []string{
5657
"",
5758
"foo bar",
58-
"foo123",
59+
"1foo",
60+
"-foo",
61+
"_foo",
5962
"@foo",
6063
}
6164

0 commit comments

Comments
 (0)