2013-09-22 43 views
0

我在java控制檯得到這個錯誤:「SyntaxError:未終止的正則表達式文字」在php打印的JavaScript SyntaxError

我真的不明白它。下面是我的代碼,如果有人可以指出我錯過了什麼,我會永遠gratefull。

PHP代碼:

print ' 
<script type="text/javascript"> 
function fakeUpload() { 
    $("#fakeupload").val(this.files && this.files.length ? this.files[0].name : this.value.replace(/^C:\\fakepath\\/i, "")); 
} 
</script>'; 

感謝。

回答

0

你錯過了逃生斜線這裏

this.value.replace(/^C:\\fakepath\\//i, "")); 
            ^

嘗試這樣

<?php 
print ' 
<script type="text/javascript"> 
function fakeUpload() { 
    $("#fakeupload").val(this.files && this.files.length ? this.files[0].name : this.value.replace(/^C:\\fakepath\\//i, "")); 
} 
</script>'; 
1

雙斜槓(\\)成爲一個斜槓PHP(\)的輸出。你必須寫四個斜線(\\\\)。

讓我們看看你的當前代碼的輸出:

this.value.replace(/^C:\fakepath\/i, ""); 

最後一個反斜槓轉義正則表達式終止(正斜槓),因此正則表達式終端終結處理。

這裏是更新的代碼的輸出:

this.value.replace(/^C:\\fakepath\\/i, ""); 
---------------------------------^^ 
escapes       | 
----------------------------------| 

因爲它是由收到反斜線的最後一個反斜槓不會造成任何影響。