1

编辑:好的,听起来 .normalize() 并没有我最初想象的那么广泛支持。因此,对我的以下问题进行修改:您认为在尚不支持此功能的 Safari 等浏览器上标准化 unicode 的最佳解决方法是什么?

好的,我写的一些代码在大约一周前在所有浏览器上都可以正常工作,现在只在 Safari 上被破坏(所有其他浏览器仍然可以正常工作)。我已经对有问题的代码进行了磨练,但我仍然不确定为什么这对 Safari 来说是个问题。这段代码应该比较两个 URL 子字符串(例如:“Williams%2C+John%2C+1932-”)以确保它们相同。有时字符串包含变音符号、空格和其他有问题的字符,因此 decodeURI(对于第一个字符串)和规范化(对于两个字符串)。

我所知道的是,如果我删除两个 .normalize('NFD') 命令,代码再次正常工作......但我需要在那里的 normalize 命令,因为有时一个字符串会使用预先组合的变音符号而另一个会使用分解(出于我的目的,我想将它们视为匹配项)。我很好奇是否有人知道为什么 .normalize() 可能会在 Safari 中导致问题,但在其他浏览器中却没有。

if(decodeURI(urlmatch).normalize('NFD')==lowernopuncplus.normalize('NFD')){
            window.open(url);
        }
        else{
            alert("Error");
        }

这是 Safari 的错误代码:

'undefined' is not a function (evaluating 'decodeURI(urlmatch).normalize('NFD')')
4

0 回答 0