2016-04-20 60 views
0

我有一段非常簡單的代碼:的Javascript比較字符串替換功能後無法正常工作

var b = "HelloWorld"; 
var a = b.replace(/([A-Z])/g, ' $1'); 
alert(a); 
if(a == "Hello World") { 
a += " yes"; 
} 
else { 
a += " no"; 
} 

一個永遠的「Hello World」,這是預期,但如果語句不能識別它,其結果是「你好世界不」。 如果我刪除替換功能,這不起作用。

任何線索?

回答

3

replace後字符串的實際結果是' Hello World'以空格開頭。你的正則表達式在所有大寫字母之前插入空格。

嘗試

if(a == " Hello World") { 
4

比較你更換之前全部大寫字母把一個空間,所以有HW前的空間。因此,這將工作:

if (a == " Hello World") { 
    a += " yes"; 
} else { 
    a += " no"; 
} 
1

var b = "HelloWorld"; 
 
    var a = b.replace(/([A-Z])/g, ' $1'); 
 
    var c = "Hello World"; 
 
    alert(a.length + ' ' + c.length); 
 

 
    if(a == "Hello World") { 
 
     a += " yes"; 
 
    } 
 
    else { 
 
     a += " no"; 
 
    }

的長度爲12,而 「Hello World」 的長度爲11