, dördüncü argümanı o numaraya oluşum sayısını sınırlar: ÖrneğinJavaScript'teki olay sayısını nasıl tanımlarım? PHP
mixed preg_replace (mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]])
:
$string = 'this is a test';
$pattern = '/s/';
echo preg_replace($pattern, 'S', $string, 1);
//=> thiS is a test
/* If I remove that 1 which is the last argument in preg_replace, the output will be:
* "thiS iS a teSt"
*/
nasıl JavaScript yapabilirsiniz?
function replace($pattern, $replacement, $subject, $limit) {
var counter = 0;
return $subject.replace($pattern, function(match) {
return ++counter > $limit ? match : $replacement;
});
}
var $string = 'this is a test';
var $pattern = /s/g;
O.innerHTML = replace($pattern, 'S', $string, 1) + '\n'
+ replace($pattern, 'S', $string, 2);
<pre id=O>
JS'deki varsayılan davranış budur. Her şeyi değiştirmek isterseniz, * global * flag - '/ s/g' – ClasG
@ClasG 'ı eklemelisiniz. JS'de g' bayrağı ile tanıdık geliyorum, ama nasıl değişebilirim? belirli sayı? örneğin sadece 3 ilk olay. – stack
JS'de, bir şeyi bir kez değiştirmek için "g" bayrağı olmadan bir normal ifadeyi kullanabilirsiniz: '" bu bir testtir. .replace (/ s /, "S") '. Eğer 'g' bayrağı kullanırsanız, tüm oluşumları değiştirir. _n_ kere yerine geçmenin kolay bir yolunun farkında değilim. – Xufox