我在java控制台中收到此错误:“SyntaxError:unterminated regular expression literal”
我真的不明白。下面是我的代码,如果有人能指出我错过了什么,我会永远感激不尽。
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 :(得分:2)
两个斜杠(\\
)在PHP(\
)的输出中成为斜杠。你必须写四个斜杠(\\\\
)。
让我们看一下当前代码的输出:
this.value.replace(/^C:\fakepath\/i, "");
最后一个反斜杠转义正则表达式终止符(正斜杠),因此正则表达式终端未终止。
以下是更新代码的输出:
this.value.replace(/^C:\\fakepath\\/i, "");
---------------------------------^^
escapes |
----------------------------------|
最后一个反斜杠不会影响任何东西,因为它在它之前被反斜杠转义。
答案 1 :(得分:1)
你错过了一个逃避斜线
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>';