Improved the filename validation
This commit is contained in:
@@ -96,33 +96,26 @@ const EditorNavigation = ({ showWat }: { showWat?: boolean }) => {
|
||||
}
|
||||
|
||||
// check for illegal characters
|
||||
const ILLEGAL_REGEX = /[/]/gi;
|
||||
const ALPHA_NUMERICAL_REGEX = /[^A-Za-z0-9._-]+/g;
|
||||
if (
|
||||
filename.match(ILLEGAL_REGEX) ||
|
||||
// Allow only a-z, A-Z, 0-9, ".", "-" and "_"
|
||||
filename.match(ALPHA_NUMERICAL_REGEX)
|
||||
) {
|
||||
return { error: "Filename contains illegal characters" };
|
||||
const ALPHA_NUMERICAL_REGEX = /^[\w,\s-]+\.[A-Za-z0-9]{1,4}$/g;
|
||||
if (!filename.match(ALPHA_NUMERICAL_REGEX)) {
|
||||
return {
|
||||
error: `Filename can contain only characters from a-z, A-Z, 0-9, "_" and "-" and it needs to have file extension (e.g. ".c")`,
|
||||
};
|
||||
}
|
||||
// More checks in future
|
||||
return { error: null };
|
||||
},
|
||||
[snap.files]
|
||||
);
|
||||
const handleConfirm = useCallback(() => {
|
||||
// add default extension in case omitted
|
||||
let _filename = filename.includes(".")
|
||||
? filename
|
||||
: filename + DEFAULT_EXTENSION;
|
||||
const chk = validateFilename(_filename);
|
||||
if (chk.error) {
|
||||
const chk = validateFilename(filename);
|
||||
if (chk && chk.error) {
|
||||
setNewfileError(`Error: ${chk.error}`);
|
||||
return;
|
||||
}
|
||||
|
||||
setIsNewfileDialogOpen(false);
|
||||
createNewFile(_filename);
|
||||
createNewFile(filename);
|
||||
setFilename("");
|
||||
}, [filename, setIsNewfileDialogOpen, setFilename, validateFilename]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user