文字列の最後の「、」を「および」で置き換える方法を見つけるのに問題があります:
この文字列がある:test1、test2、test3
そして、私はで終わりたいです:test1、test2、test3
私はこのようなものを試しています:
var dialog = 'test1, test2, test3';
dialog = dialog.replace(new RegExp(', /g').lastIndex, ' and ');
しかし、それは機能していません
foo.replace(/,([^,]*)$/, ' and $1')
使用 $
(行の終わり)アンカーを使用して位置を確認し、コンマインデックスの右側にある、コンマを含まないパターンを探します。
編集:
上記は、定義された要件に対して正確に機能します(ただし、置換文字列は任意に緩やかですが)コメントからの批判に基づいて、以下は元の要件の精神をよりよく反映しています。
console.log(
'test1, test2, test3'.replace(/,\s([^,]+)$/, ' and $1')
)
result = dialog.replace(/,\s(\w+)$/, " and $1");
$1
は最初のキャプチャグループを参照しています(\w+)
の一致。
正規表現検索パターン\ s([^、] +)$
Line1: If not, sdsdsdsdsa sas ., sad, whaterver4
Line2: If not, fs sadXD sad , ,sadXYZ!X
Line3: If not d,,sds,, sasa sd a, sds, 23233
パターンで検索すると、Line1:whaterver4 Line3:23233が見つかります
まだLine2が見つかりません:sadXYZ!X
どれだけ空白がないか