通过Java代码生成JavaScript页面时逃避char问题?

时间:2009-10-29 10:34:27

标签: java javascript

我通过JavaScript代码生成Java个网页,例如:

FileOutputStream fs=new FileOutputStream("C:\\Documents and Settings\\prajakta\\Desktop\\searcheng.html");
OutputStreamWriter out=new OutputStreamWriter(fs);
out.write("<script language='JavaScript' type='text/javascript'>");
out.write("var str=new String('C:\\Documents and  Settings\\prajakta\\Desktop\\substr.html');");
out.write("var beg=str.lastIndexOf('\\');");//double' \' **Problem Stmt**

等等。

问题是当创建searcheng.html时它包含

var beg=str.lastIndexOf('\');//single '/'

在查找'\'的索引时会产生问题。 我该怎么写这个问题,以便它包含双“\”?

同样我应该怎么写一个声明

out.write("document.write('< a href='str'> '+str.slice(beg+1,end)+' </a>');"); 

这样它就可以在JavaScript中创建语句

document.write('< a href=" 'str' ">  '+str.slice(beg+1,end)+'  </a>');

,该链接将转到其地址存储在str

中的页面

3 个答案:

答案 0 :(得分:1)

out.write("var beg=str.lastIndexOf('\\\\');");

应该做的伎俩。 Java for Double,JavaScript再加倍......

答案 1 :(得分:1)

在Java字符串文字中,反斜杠字符作为转义字符具有特殊含义。如果你想表示反斜杠字符本身,你需要自己转义它。

这就是为什么Java String文字"\\"表示一个带有一个字母的字符串,该字母是反斜杠。

如果你想用两个反斜杠表示一个字符串,你需要在你的文字中转义:"\\\\"

答案 2 :(得分:0)

试试这个:

    out.write("var beg=str.lastIndexOf('\\\\\\');");

关键是'\'是Java中的转义字符,所以要有1,你必须写2.要得2,你必须写4。