将结束引号转换为撇号 Javascript

Convert End Quote to Apostrophe Javascript

以下两个字符串有不同的撇号。我很困惑如何转换它们以使它们具有相同的样式(两者要么倾斜,要么都垂直向上和向下)。我已经尝试了所有方法,从将其包含在 `${}`` 到用于删除和替换的正则表达式。我不确定它是如何像这样存储的,但是当我尝试在 string2 中搜索 string1 时,它无法识别索引,因为(我相信)撇号不匹配。有人 运行 以前参与过这个吗?

//let textData = Father’s
//let itemData = Father's Day

const newData = currData.filter(item => {
    let itemData = `${item.activityName.toUpperCase()}`;
    let textData = `${text.toUpperCase()}`; //coming in slanted

    let newItemData = itemData.replace(/"/g, "'");
    let newTextData = textData.replace(/"/g, "'");

    return newItemData.indexOf(newTextData) > -1;
  });

您可以使用正则表达式进行搜索,允许您期望的任何撇号变体:

let string1 = "FATHER’S"
let string2 = "FATHER'S DAY: FOR THE FIXER"

const regex = string1.split(/['’"`]/).join("['’\"`]")
//console.log(regex);

const r = new RegExp(regex)

console.log(string2.search(r)); //comes back as 0

首先,您的代码不会 运行 因为您没有用 "'` 包装 string 变量,视情况而定。

如果您的字符串有 ',您可以像这样使用 "`

"Hello, I'm a dev"

"Hello, I`m a dev"

但是如果你有相同的符号,你不能把它们混在一起,所以这是不允许的:

'Hello, I`m a dev'

这里有一个字符串正确包装的工作示例,还替换了值以匹配字符串。

注意:请注意本例中的 index 是 0,因为我们要查找的整个字符串从 0 索引到 length 的 [=24] =].

如果你想根据 string1 的匹配从 string2 中获取部分字符串,我还添加了一个案例

let string1 = "FATHER’S"
let string2 = "FATHER'S DAY: FOR THE FIXER"

const regex = /’|'/;
const replacer = "'";
let response1 = string1.replace(regex, replacer);
let response2 = string2.replace(regex, replacer);

console.log(response1);
console.log(response2);

console.log("this is your index --> ", response2.indexOf(response1));

console.log("string 2 without string 1 -->", response2.slice(response2.indexOf(response1) + response1.length, response2.length))