1

完全な文タイプのクイズを生成するために使用されるスクリプトをJSで作成しています。

_ __ ____茶色のキツネは怠惰_____飛び越えます

ステップ1:ユーザーに文を入力するためのテキストボックスが表示されます。
ステップ2:文は実際の単語(コンマなし、ピリオドなど)に分割されて配列になります。
ステップ3:バックグラウンドで、各単語をループしてアンカーでラップします<a />
。ステップ4:ユーザーは、1つまたは複数の単語をクリックして、クイズの受験者が完了するようにマークを付けることができます。これについて検証を行います。
ステップ5:最終結果は、乱数(1-n)の余分な文字で選択された単語の空白を含む文になるため、単語の長さの正確なヒントはありません。

ほとんどの機能は問題ありませんが、文を正確な単語に分割する必要があります(おそらく正規表現を使用)。

これにはいくつかの規則があります。特殊文字だけでなく、コンマとピリオドも無視する必要があります。また、入力を制限して、特殊文字がこれを簡単な作業にできないようにすることも考えています。一部の単語にはこれらが含まれているため、一重引用符とハイフンを単語の一致に含める必要があります。

コメントを残して提案してくれるので、とても嬉しいとは思えないルールが他にもあるかもしれません。

私は、単にスペースで区切る基本的なjsFiddleから始めました。

読んでくれてありがとう。

4

2 に答える 2

1

非単語で分割

単語は文字、一重引用符、ハイフンの組み合わせであり、繰り返されるものはすべて非単語です。

これを実現するには、splitステートメントを次のように変更します。

var textArray = text.split(/[^a-zA-Z'-]+/)

/正規表現を定義するために使用しない限り、Javascriptは正規表現を使用して分割されません。

セパレーターを保持するには、を使用してセパレーターをキャプチャーし、キャプチャーしmatchた順序で再挿入します。

var splitArray = text.match(/[^a-zA-Z'-]+/)
于 2012-07-19T00:29:36.533 に答える
0

うーん...私は非常に簡単な解決策を持っています:

[\w'-]+

それでおしまい。

この行では正常に機能します。

私は2つが「アイスクリーム」、男と男-ettesを持っているのが好きです。

ええ、それは上記の奇妙な文です。しかし、それはテストケースとして機能しました。それを試してみてください。そこに数字の2が単語として含まれます。あなたがそれを望むかどうかわからない。そして、ハイフンの横に必要なその他の特殊文字を追加するだけです。

于 2012-07-19T04:17:19.223 に答える