Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript IE中比较字符串时出现的预期错误数_Javascript_Html_Internet Explorer_Internet Explorer 8 - Fatal编程技术网

Javascript IE中比较字符串时出现的预期错误数

Javascript IE中比较字符串时出现的预期错误数,javascript,html,internet-explorer,internet-explorer-8,Javascript,Html,Internet Explorer,Internet Explorer 8,我在一个javascript插件中有一个排序函数,代码如下所示: groups = groups.sort(function (a, b) { a = a.content.toString().toLowerCase().replace(/\s+/g, ''); b = b.content.toString().toLowerCase().replace(/\s+/g, ''); if(a > b){ //stops and gives error here return

我在一个javascript插件中有一个排序函数,代码如下所示:

groups = groups.sort(function (a, b) {
    a = a.content.toString().toLowerCase().replace(/\s+/g, '');
    b = b.content.toString().toLowerCase().replace(/\s+/g, '');
if(a > b){ //stops and gives error here
return 1;
}
if(a < b){
return -1;
}
return 0;
});
groups=groups.sort(函数a,b){
a=a.content.toString().toLowerCase().replace(/\s+/g');
b=b.content.toString().toLowerCase().replace(/\s+/g');
如果(a>b){//停止并在此处给出错误
返回1;
}
if(a
a.content
实际上是一个字符串本身(但只是为了IE,我在代码中添加了
.toString()

在所有其他浏览器上,上述代码在所有浏览器上都可以正常运行,但在IE 8上,上述代码显示JavaScript错误并在上面代码中显示的行停止。控制台在这一行显示消息“Number expected”

(有时
a.content
也可能有一些这种形式的html->
“示例字符串”

不确定这是否会导致IE8中的错误,但该问题仅在此浏览器中出现)

如何消除此错误?

我记得当IE添加了一些空白空间时,IE出现了一些问题……请尝试修剪

或者…您是否尝试使用.localeCompare比较字符串

alert('a'.localeCompare('b'));
alert('a'.localeCompare('a'));
alert('b'.localeCompare('a'));
用这个代替

var a1 =    a = a.content.toString().toLowerCase()

由于ie<9存在一个问题,toLowerCase随机返回未知的数据类型……如果不按排序重新分配变量,它将正常工作。

由于它是特定于浏览器的,因此需要进行一些修补,因为我至少不清楚ie中出了什么问题。您能否创建一个JSFIDLE,将一些示例值加载到组中,以便我们能够是否要复制错误?我尝试了
localeCompare
,但这搞砸了我的排序。例如:
Relaucch112
出现在
Relaunch
或类似的东西之前。我没有尝试查看localeCompare是否在IE上工作,因为排序不是我想要的。另外,我为
编写的代码。replace()
在我上面的帖子中,将删除空格,所以我认为这不应该是一个问题。这是否已回答?
var a1 =    a = a.content.toString().toLowerCase()