diff --git a/src/app/project/ontology/ontology-form/ontology-form.component.html b/src/app/project/ontology/ontology-form/ontology-form.component.html
index 340c06b1f8..d832103f7e 100644
--- a/src/app/project/ontology/ontology-form/ontology-form.component.html
+++ b/src/app/project/ontology/ontology-form/ontology-form.component.html
@@ -2,7 +2,7 @@
-
help
diff --git a/src/app/project/ontology/ontology-form/ontology-form.component.spec.ts b/src/app/project/ontology/ontology-form/ontology-form.component.spec.ts
index b5a7637e82..69983b5435 100644
--- a/src/app/project/ontology/ontology-form/ontology-form.component.spec.ts
+++ b/src/app/project/ontology/ontology-form/ontology-form.component.spec.ts
@@ -126,6 +126,50 @@ describe('OntologyFormComponent', () => {
});
+ it('should test form validity with not allowed names', () => {
+ const form = ontologyFormComponent.ontologyForm;
+ expect(form.valid).toBeFalsy();
+
+ const nameInput = form.controls.name;
+
+ nameInput.setValue('v2onto');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('my-onto');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('2ndOnto');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('-notAllowed');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('_notAllowed');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('not-allowed');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('not_allowed');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('not.allowed');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('no$or€');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('no spaces');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('ältereOnto');
+ expect(form.valid).toBeFalsy();
+
+ nameInput.setValue('bestOnto');
+ expect(form.valid).toBeTruthy();
+
+ });
+
it('should test form validity without label', () => {
const form = ontologyFormComponent.ontologyForm;
expect(form.valid).toBeFalsy();
diff --git a/src/app/project/ontology/ontology-form/ontology-form.component.ts b/src/app/project/ontology/ontology-form/ontology-form.component.ts
index cf60c4c4c6..d90796dfcc 100644
--- a/src/app/project/ontology/ontology-form/ontology-form.component.ts
+++ b/src/app/project/ontology/ontology-form/ontology-form.component.ts
@@ -51,8 +51,10 @@ export class OntologyFormComponent implements OnInit {
lastModificationDate: string;
- nameRegex = /^(?![vV][0-9]|[0-9]|[\u00C0-\u017F]).[a-zA-Z0-9]+\S*$/;
+ // regex to check ontology name: shouldn't start with a number or with 'v' followed by a number, spaces or special characters are not allowed
+ nameRegex = /^(?![vV]+[0-9])+^([a-zA-Z])[a-zA-Z0-9]*$/;
+ // ontology name must not contain one of the following words
forbiddenNames: string[] = [
'knora',
'salsah',