JavaScript - как заменить подстроку?

Поскольку у вас нет (обычно) объектов OO-стиля в Haskell, странно думать о том, что данные самосознательны. Важно отметить, что вы обычно не используете агрегацию в типах данных Haskell, предпочитая композицию.

Возможно, вы захотите изучить XMonad , чтобы увидеть, соответствует ли их дизайн ваши потребности (код на удивление читается).

Вы также можете захотеть перестроить свой дизайн, чтобы вам никогда не приходилось смотреть выше вас (например, передавая детям «обратные вызовы»).

Вы также можете посмотреть, можете ли вы написать молнию для всего графика.

13
задан Julius A 31 October 2008 в 16:10
поделиться

4 ответа

String.replace() является находящимся в regexp; если Вы передадите в строке как первый аргумент, regexp, сделанный из него, не будет включать ‘g’ (глобальный) флаг. Эта опция важна, если Вы хотите заменить все происшествия строки поиска (который обычно является, что Вы хотите).

альтернатива идиома non-regexp для простой глобальной строковой замены:

function string_replace(haystack, find, sub) {
    return haystack.split(find).join(sub);
}

Это предпочтительно, где эти find строка может содержать символы, которые имеют нежелательное особое значение в regexps.

Во всяком случае, любой метод хорошо для примера в вопросе.

25
ответ дан Aliaksandr Sushkevich 31 October 2008 в 16:10
поделиться
  • 1
    Можно ли понравиться. обеспечьте свои исходные данные относительно того, был ли AsParallel лучше, чем использование ConcurrentBag< T>? – stackoverflowuser 16 February 2011 в 19:12

Хороший сводка . Это - базирующийся regexp при использовании regexp нотации, можно определить меня и g модификаторы (нечувствительный к регистру (i), который будет соответствовать независимо для преобразования регистра и глобальный (g), который заменит все происшествия), если Вы будете использовать строковую нотацию, это будет преобразовано в regex и Вас привычка' быть в состоянии определить любой модификатор.

<script type="text/javascript">

var str1="Visit Microsoft!";
var str2 = str1.replace(/microsoft/i, "W3Schools"); //Will work, per the i modifier 

var str3 = "original READ ONLY";
var str4 = str3.replace("ONLY", "WRITE"); //Will also work

</script>
12
ответ дан Vinko Vrsalovic 31 October 2008 в 16:10
поделиться
  • 1
    @stackoverflowuser да, при реальной необходимости в параллельном доступе к структуре данных необходимо использовать ConcurrentBag<T>. но в действительности с такой библиотекой высокого уровня как PLINQ это редко необходимо. – Andrey 16 February 2011 в 19:12

Я предпочитаю подход regex,

newstring = oldstring.replace (/regexforstringtoreplace/, 'новая строка');

его также достойный рассмотрения g и я regex модификаторы, они делают глобальную замену (т.е. заменяет все случаи), и делает его нечувствительным к регистру.

, например:

<script type="text/javascript">

var str = "this is a String";

document.write(str.replace(/\s/g, "_"));

would print: this_is_a_string

document.write(str.replace(/s/gi, "f"));

would print "thif if a ftring"

</script>
2
ответ дан Andrew Bullock 31 October 2008 в 16:10
поделиться
stringObject.replace(findstring,newstring)
3
ответ дан rogeriopvl 31 October 2008 в 16:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: