我在一个允许我使用{Cli:FirstName}等语法引用数据库字段的程序中工作,这引用了客户端的名字。该程序允许我使用HTML和java脚本在程序内的窗口内显示一个网页。
我遇到的问题是我写了很多页面和脚本来显示正确的信息,但我发现了一个问题。我有脚本,我将数据库字段传递给函数,如
function a('{Cli:FirstName}'},'{Cli:LastName}'){
logic;
}
我以这种方式传递它,因为该函数位于外部.js文件中。我正在使用的程序不允许我直接引用数据库字段,除了在程序窗口中显示的.html文件。因此,.js中的每个函数都有一个类似的参数列表。我可以在页面的标题中编写一个函数并直接访问数据库字段而不将该字段作为参数传递,但这会导致其他问题,并且由于程序中的速度和其他限制,我几乎将所有脚本移出显示网页。
当我尝试将包含撇号的数据库字段传递给.js文件中的函数时,会出现问题。它会使函数调用崩溃,因为撇号是一个字符串分隔符。某些功能是事件驱动的,但有些功能也是在页面加载时。操作顺序是程序首先执行数据库查询,然后在网页的正常流程之后呈现html。当我加载一个页面并且一个字段中有一个撇号,并且在函数调用中时,我收到一条错误消息。示例名称:是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)
为什么不使用双引号而不是单引号
答案 1 :(得分:0)
如果您无法控制HTML页面上的显示方式,则没有简单的解决方案。如果可以的话,你应该使用实体转义。这不完全安全,但为什么不简单地用双引号将字符串包装起来:“
这假设您在字符串中看不到双引号。