4

この「ab」のように、文字「a」と「b」の間のスペースを除いて、すべてのスペース文字を文字「_」に置き換えるにはどうすればよいですか。

// this is what I have so far to save someone time (that's a joke)
var result:String = string.replace(/ /g, "_");

ああ、これはJavaScriptです。

4

2 に答える 2

4

これを使って:

var result:String = string.replace(/([^a]) | ([^b])/g, "$1_$2");

上記の簡単な説明は、次のいずれかのスペースを置き換えることです。

  1. の前に以外の文字がありますa
  2. その後に以外の文字が続くb

注:タブと改行を含むように正規表現を一般化するには\s、次のように使用します。

var result:String = string.replace(/([^a])\s|\s([^b])/g, "$1_$2");
于 2013-01-06T02:49:37.157 に答える
2

この正規表現を試してください:

/(?!a)\s(?!b)/g

編集: KendallFreyが指摘したように、これは最善の解決策ではありません。

于 2013-01-06T00:17:10.543 に答える