2011-07-08 279 views
0

我在一個程序中工作,該程序允許使用{Cli:FirstName}等語法引用數據庫字段,它引用客戶的名字。該程序允許我使用HTML和Java腳本在程序內的窗口內顯示網頁。從字符串中刪除撇號

我遇到的問題是我寫了很多頁面和腳本來顯示正確的信息,但我發現了一個問題。我有我的數據庫字段傳遞給一個函數,如

function a('{Cli:FirstName}'},'{Cli:LastName}'){ 
logic; 
} 

我這種方式通過,因爲該函數是在外部.js文件的腳本。我正在使用的程序不允許我直接引用數據庫字段,除了在程序窗口中顯示的.html文件中。因此,.js中的每個函數都有一個類似的參數列表。我可以在頁面的頭部編寫一個函數,並直接訪問數據庫字段,而不必將字段作爲參數傳遞,但這會導致其他問題,並且由於程序中的速度和其他限制,我幾乎將所有腳本移出顯示網頁。

當我嘗試將包含撇號的數據庫字段傳遞給.js文件中的函數時,會發生此問題。它會使函數調用崩潰,因爲撇號是一個字符串分隔符。其中一些功能是事件驅動的,但也有一些是在頁面加載時。操作的順序是程序首先執行數據庫查詢,然後按照正常流量呈現網頁。何時,我加載一個頁面,並且一個字段中有一個撇號,並且在函數調用中,我收到一條錯誤消息。示例名稱:O'Malley會使腳本崩潰。 我需要修復它,所以在數據庫查詢完成後,我可以通過在函數中用作參數的字段並在傳入函數之前轉義撇號/'。

我的第一個想法是在html頁面上編寫一個函數,因此我可以直接訪問數據庫字段,然後轉義撇號,然後將該值傳遞給其他函數。通過這種方式,撇號刪除功能足夠通用,可用於任何其他帶撇號的字段。我需要關於如何編寫函數的幫助,然後將該函數結果傳遞給另一個函數。

function removeApostrophe(){ 
var firstName = ‘{CLI:FirstName}’; // sets the variable equal to the string in the database 
    // do this for each field I use as a parameter in other functions 
} 

回答

0

爲什麼不直接使用雙引號代替單引號

0

有,如果你沒有控制它如何出現在HTML頁面上的能力沒有簡單的解決方案。如果你可以,你應該使用實體轉義。這不是完全安全的,但爲什麼不簡單地用雙引號將字符串包裝起來:「

這裏假設你不會在你的字符串中看到雙引號