You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openai-cookbook/apps/file-q-and-a/nextjs-with-flask-server/client/src/services/utils.ts

20 lines
732 B
TypeScript

// A function that takes a file name and a string and returns true if the file name is contained in the string
// after removing punctuation and whitespace from both
export const isFileNameInString = (fileName: string, str: string) => {
// Check if the input string is null or undefined
if (!str) {
return false;
}
// Convert both to lowercase and remove punctuation and whitespace
const normalizedFileName = fileName
.toLowerCase()
.replace(/[.,/#!$%^&*;:{}=-_~()\s]/g, "");
const normalizedStr = str
.toLowerCase()
.replace(/[.,/#!$%^&*;:{}=-_~()\s]/g, "");
// Return true if the normalized file name is included in the normalized string
return normalizedStr.includes(normalizedFileName);
};