Я не использовал этот метод, но Michael Kaplan описывает метод для того, чтобы сделать так в его сообщении в блоге (с запутывающим заголовком), который говорит о разделении диакритических знаков: Разделение является интересным заданием (иначе На значении бессмысленных, иначе символы All Mn без интервалов, но некоторые более без интервалов, чем другие)
static string RemoveDiacritics(string text)
{
var normalizedString = text.Normalize(NormalizationForm.FormD);
var stringBuilder = new StringBuilder();
foreach (var c in normalizedString)
{
var unicodeCategory = CharUnicodeInfo.GetUnicodeCategory(c);
if (unicodeCategory != UnicodeCategory.NonSpacingMark)
{
stringBuilder.Append(c);
}
}
return stringBuilder.ToString().Normalize(NormalizationForm.FormC);
}
Примечание, что это - продолжение его более раннего сообщения: диакритические знаки Разделения....
использование подхода Строка. Нормализуйте , чтобы разделить входную строку на составляющие глифы (в основном разделение "основных" символов от диакритических знаков) и затем просканировать результат и сохранить только основные символы. Это просто немного сложно, но действительно Вы смотрите на сложную проблему.
, Конечно, при ограничении себя французским языком Вам мог бы, вероятно, сойти с рук простой основанный на таблице подход в , Как удалить диакритические знаки и тильду в станд. C++:: строка , как рекомендуется @David Dibben.
Если вы не можете использовать $ ("# x> div")
, потому что он должен работать со всеми селекторами, о которых вы думаете, тогда предполагая, что вы определили этот конкретный селектор для var x:
var x = $('#x');
// this will select only the direct div children of x whatever the x is
x.children('div');
Используйте:
$("#x > div")
в качестве селектора - он выберет только прямых дочерних элементов div
с идентификатором x
.
Этот метод предоставит вам весь внутренний текст div:
x.children('div').each(function() {
alert($(this).text());
});
Если вы не хотите весь текст, объединенный из нескольких дочерних div, вы можете доступ только к узлу прямого текста каждого:
x.children('div').each(function() {
alert(this.childNodes[0].nodeValue);
});
Примечание: предполагая, что x
является элементом Jquery, определенным var x = $ ('# x')
.