KnockoutJS は初めてです。要素のテキストを変更する (またはテキスト要素から更新する) ために使用されるオブザーバブルを定義する方法は知っていますが、モデル内のデータを実際には読み取り/書き込みアクセスを持つ正規表現にしたいと考えています。likeを使って設定したいtextarea
:
<textarea data-bind="value: regex"></textarea>
そして、次を使用してページに表示します。
<span data-bind="text: regex"></span>
これで初期化が機能します。
//inside the model
this.regex = ko.observable( /,/g );
そして、 と の両方textarea
がspan
更新されます (ネイティブの正規表現変数にはtoString()
、正規表現の文字列表現を完全にうまく機能させる関数があるため)。しかし、変更しregex
ても更新さtextarea
れspan
ません。オブザーバブルの設定が失敗しているようです。
value
fromtextarea
は単なるテキストであり、それを実際の正規表現に変換するには、いくつかのコードが必要であるため、これは理解できます。私はコードを持っています。function str2regex()
次のようなボディで呼び出しましょう。
//this is pseudo code and doesn't neccesarily work
function str2regex( str )
var r = str.match( "^\/(.+?)\/([mig])*$" );
if ( r ) {
if ( r[2] === null ) {
return new RegExp( r[1] );
} else {
return new RegExp( r[1], r[2] );
}
}
return null;
}
からのテキストを使用して、モデルに正規表現型の値を設定するにはどうすればよいtextarea
ですか?