Javascript 比较包含数字的文本

Javascript 比较包含数字的文本,javascript,Javascript,我有两个变量,都包含文本和数字,在比较它们时得到了错误的结果: var x = "test_8" var y = "test_11" if(x > y){ alert(x+" is greater than "+y); } else{ alert(y+" is greater than or equal to "+x); } 我收到的警报是test_8大于test_11,但我应该收到另一个警报。我猜我必须把8和11提取出来作为数字,但我不知道怎么做。它需要转换成数字进行精

我有两个变量,都包含文本和数字,在比较它们时得到了错误的结果:

var x = "test_8"
var y = "test_11"
if(x > y){
    alert(x+" is greater than "+y);
}
else{
    alert(y+" is greater than or equal to "+x);
}

我收到的警报是test_8大于test_11,但我应该收到另一个警报。我猜我必须把8和11提取出来作为数字,但我不知道怎么做。

它需要转换成数字进行精确比较

函数getNum(str){ //它删除了所有非数字的,但regex可以根据使用的str数据而有所不同。 返回编号(str.replace(/\D+/,“”); } var x=“测试8”; var y=“测试11”; 如果(getNum(x)>getNum(y)){ 警报(x+“大于”+y); } 否则{ 警报(y+“大于”+x);
}
8>1
,如果您有“test\u 08”和“test\u 11”不确定是否作为副本关闭,则会发生这种情况,但您会找到解决方案,其中详细说明了一个合适的比较函数。您应该在此处提供更多详细信息。您是否总是希望字符串的形式为
test\ux
,其中
X
是一个数字?你的用例到底是什么?是的,我假设它与比较文本有关,而它应该同时比较文本和数字。谢谢,这是我修复它的方式。我检查变量中是否有数字,如果有,则将其转换为数字