「テーブル 2」またはそのテーブル番号 (場合によっては 2 桁) を変数に取得しようとしています。なぜこれが戻ってくるのnull
ですか?
var productText = '25-08-12 Boat Cruise (Table 2)';
var rgx = /^\(\)$/;
var newText = productText.match(rgx);
alert(newText);
「テーブル 2」またはそのテーブル番号 (場合によっては 2 桁) を変数に取得しようとしています。なぜこれが戻ってくるのnull
ですか?
var productText = '25-08-12 Boat Cruise (Table 2)';
var rgx = /^\(\)$/;
var newText = productText.match(rgx);
alert(newText);
代わりに次を使用します。
var rgx = /\(([^)]+)\)/;
var match = productText.match(rgx);
var newText = match && match[1];
// newText's value will be "Table 2" if there is match; null otherwise
がある場合/^\(\)$/
、実際には文字列と一致"()"
させようとしていますが、それ以上でもそれ以下でもありません。代わりに、テキスト a の任意の場所に一致し、(
それと次の間のすべてを)
キャプチャ グループに保存し([^)]+)
て、後でキャプチャ グループを参照できるようにする必要がありますmatch[1]
。
番号だけが必要な場合は、 を使用します/\(Table (\d+)\)/
。
var rgx = /\((.*)\)/
テーブル番号をグループにキャプチャします。
あなたの正規表現は現在言っています
'文字列の最初(^)と最後($)に()を付けてください'。
^ は行頭を意味し、
$ は行末を意味します。
また、 内のテキストと一致するものが必要です()
。たとえば、次のようになります。.*
それが指摘されていると、/^\(\)$/
にのみ一致し()
ます。
次に、実際の例は次のようになります。
var productText = '25-08-12 Boat Cruise (Table 2)';
var rgx = /\(.*\)/;
var newText = productText.match(rgx)[0];
newText = newText.replace('(','');
newText = newText.replace(')','');
alert(newText);
必要なものを確認したら、jQuery のデータを使用することをお勧めします。