web-dev-qa-db-ja.com

JavaScriptを使用して文字列内の最後に出現する文字を置き換える方法

文字列の最後の「、」を「および」で置き換える方法を見つけるのに問題があります:

この文字列がある:test1、test2、test3

そして、私はで終わりたいです:test1、test2、test3

私はこのようなものを試しています:

var dialog = 'test1, test2, test3';    
dialog = dialog.replace(new RegExp(', /g').lastIndex, ' and ');

しかし、それは機能していません

31
Henrik Stenbæk
foo.replace(/,([^,]*)$/, ' and $1')

使用 $行の終わり)アンカーを使用して位置を確認し、コンマインデックスの右側にある、コンマを含まないパターンを探します。

編集:

上記は、定義された要件に対して正確に機能します(ただし、置換文字列は任意に緩やかですが)コメントからの批判に基づいて、以下は元の要件の精神をよりよく反映しています。

console.log( 
   'test1, test2, test3'.replace(/,\s([^,]+)$/, ' and $1') 
)
49
annakata
result = dialog.replace(/,\s(\w+)$/, " and $1");

$1は最初のキャプチャグループを参照しています(\w+)の一致。

4
splash

正規表現検索パターン\ 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
どれだけ空白がないか

0
ricksalmon