将结束引号转换为撇号 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))
以下两个字符串有不同的撇号。我很困惑如何转换它们以使它们具有相同的样式(两者要么倾斜,要么都垂直向上和向下)。我已经尝试了所有方法,从将其包含在 `${}`` 到用于删除和替换的正则表达式。我不确定它是如何像这样存储的,但是当我尝试在 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))