Решение C# 3.0 (извините:)
public static IEnumerable<IEnumerable<T>> Tuples<T>(this IEnumerable<T> sequence, int nTuple)
{
if(nTuple <= 0) throw new ArgumentOutOfRangeException("nTuple");
for(int i = 0; i <= sequence.Count() - nTuple; i++)
yield return sequence.Skip(i).Take(nTuple);
}
Это не является самым производительным в мире, но это уверено приятный посмотреть на.
Действительно, единственная вещь, делающая это, решением C# 3.0 является.Skip. Возьмите конструкцию, поэтому если Вы просто изменяете это на добавление элементов в том диапазоне к списку вместо этого, это должно быть золотым для 2,0. Тем не менее это все еще не производительно.
Используйте функцию Apache StringEscapeUtils.escapeJavaScript .
Экранирует символы в строке с использованием правил JavaScript для строк. Экранирует любые найденные значения в их строковую форму JavaScript. Правильно работает с кавычками и контрольными символами (табуляция, обратная косая черта, cr, ff и т. Д.) Таким образом, табуляция превращается в символы '\\' и 't'.
Когда вы возвращаете HTML из класса CommObject, добавьте \ "вместо 'и перед именем (например, сообщение Кэролайн)
Вот так: return" \ "" + comName + "\" ";
Это странно.
А как насчет:
'<%=c.getComName().replaceAll("\\'","\\\\'")%>'
Если это сработает, вам просто нужно придумать, как добавить \ ".
Я предпочитаю избегать сценариев в середине моей страницы и должен был использовать их (всё чаще), чтобы избежать строк при использовании в коде JavaScript. Я хотел язык выражения (EL) способ избежать струн. Я создал очень маленький пользовательский Taglib, который я использую только для этой цели:
Утилиты.java:
package com.mycom.taglibs;
import org.apache.commons.lang.StringEscapeUtils;
public class Utilities {
public static String escapeJS(String value) {
return StringEscapeUtils.escapeJavaScript(value);
}
}
mytaglib.tld:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>My Tag Library</description>
<display-name>Tag Utils</display-name>
<tlib-version>1.1</tlib-version>
<short-name>myt</short-name>
<function>
<description>
JavaScript Escape function
</description>
<name>escapeJS</name>
<function-class>com.mycom.taglibs.Utilities</function-class>
<function-signature>java.lang.String escapeJS(java.lang.String)</function-signature>
</function>
</taglib>
и, на странице JSP:
<%@ taglib prefix="myt" uri="/WEB-INF/mytaglib.tld" %>
The escaped string is: ${myt:escapeJS(variableHoldingTheString)}