1

私が達成しようとしているのは、ファイル名からこれらのキーワードに基づいて、ファイルアップロード用のタグ/キーワードを自動生成することです。

ここに示すように、アップロードごとに タイトルの自動生成を完了しました。ここに画像の説明を入力

しかし、キーワードの自動生成を試みることに移りました。タイトルに似ていますが、より多くのフォーマットがあります。まず、この文字列を実行して、ファイル名から一般的に使用される単語 ( this,that,there... など)を削除します。

私はそれで満足していますが、数字を含む単語を含める必要はありません. 数字が含まれている場合に単語を完全に削除する方法についての解決策は見つかりませんでした。ここで見つけた解決策は特定の一致に対してのみ機能しますが、これは数字だけを削除します。数字が含まれている場合は、単語全体を削除したいと思います。

4

5 に答える 5

1

現在のファイル名文字列に単純な正規表現を適用し、出現箇所をすべて空の文字列に置き換えます。正規表現は、任意の数字を含む「単語」に一致します。

Javascript の例:

'asdf 8bit jawesome234 mayhem 234'.replace(/\s*\b\w*\d\w*\b/g, '')

次のように評価されます。

"asdf mayhem"

ここで、正規表現は/\s*\b\w*\d\w*\b/gであり、0 個以上の空白文字 ( \s*) の後に単語境界遷移 ( \b) が続き、その後に 0 個以上の英数字 ( \w*) が続き、その後に数字 ( \d) が続き、その後に 0 またはさらに英数字、その後に単語境界遷移 ( \b) が続きます。\bは、単語の先頭または末尾からの英数字または英数字以外の文字への遷移における空の文字列に一致します。正規表現gの最後の後は、最初の出現だけでなく、すべての出現を置き換えることを意味します。/

数字の単語が削除されたら、必要に応じて文字列をキーワードに分割できます (空白など)。

"asdf mayhem".split(/\s+/);

次のように評価されます。

["asdf", "mayhem"]
于 2012-06-30T16:19:09.393 に答える
1

数字を含むすべての単語を削除するには、次を使用します。

string = string.replace(/[a-z]*\d+[a-z]*/gi, '');
于 2012-06-30T16:22:05.260 に答える
1

次の表現を試してください。

 var regex = /\b[^\s]*\d[^\s]*\b/g;

例:

 var str = "normal 5digit dig555it digit5 555";
 console.log( str.replace(regex,'') );​   //Result->  normal    
于 2012-06-30T16:32:05.103 に答える
1
('Apple Cover Photo 23s423 of your 543634 moms').match(/\b([^\d]+)\b/g, '')

戻り値

Apple カバー写真 , あなたの , お母さん

http://jsfiddle.net/awBPX/2/

于 2012-06-30T16:36:27.757 に答える
0

これを使用して、数値を含む単語を削除します。

string.replace("[0-9]","");

お役に立てれば。

編集:

これをチェックして :

var str = 'one 2two three3 fo4ur 5 six';
var result = str.match(/(^[\D]+\s|\s[\D]+\s|\s[\D]+$|^[\D]+$)+/g).join('');
于 2012-06-30T16:23:39.330 に答える