0

いくつかの文字列があります

"string numbe1 fdsf gfdgfdgf (value1)"
"string numbe2 fdsf gfdgfdgf (value2)"
"string numbe3 fdsf gfdgfdgf (value3)"
"string numbe5 fdsf gfdgfdgf (value1)"
"string numbe5 fdsf gfdgfdgf (value2)"

(valueN)(value1)または(value2)またはのいずれか(value3)です。JavaScript正規表現を使用して、元の文字列から切り取る必要があります。したがって、 newString は次のようなものでなければなりませんstring numbe1 fdsf gfdgfdgf

これが私がやったことです(そして、私が望むように機能していません)

var newString = originalString.replace(/(value1)|(value2)|(value3)/g,"") ;

返します"1 ()"

どうすれば解決できますか?

4

6 に答える 6

1

括弧をエスケープする必要があり、.前に余分な権利がありますreplace

"string numbe5 fdsf gfdgfdgf (value2)".replace(/\(value[1-3]\)/, '')
于 2012-08-31T11:47:38.727 に答える
0

私はこの正規表現を使用します:

"string numbe5 fdsf gfdgfdgf (value2)".replace(/ \(value[123]\)/, '')
于 2012-08-31T11:53:11.613 に答える
0

正確には拡張可能ではありませんが、文字列形式が常に同じである場合は、次のようにすることができます。

var str = "string numbe1 fdsf gfdgfdgf (value1)";
str = str.slice(0, str.length-8));​
于 2012-08-31T11:54:07.897 に答える
0

次のことを試してください。

> var s = "string numbe1 fdsf gfdgfdgf (value1)";
> s.replace(/^(.*) \(value[1-3]\)$/, '$1');
"string numbe1 fdsf gfdgfdgf"
于 2012-08-31T11:51:53.003 に答える
0

コードに誤りがあります。以下のコードを使用してください

<script>
function myFunction()
{
var str="string numbe1 fdsf gfdgfdgf (value2)"; 
var n=str.replace(/(\(value1\)|\(value2\)|\(value3\))/g," ");
alert(n);
}
</script>
于 2012-08-31T12:19:39.393 に答える
0

使ってみて

var newString = originalString.replace(/\(value\d\)/g,"") ;

于 2012-08-31T11:49:48.947 に答える