我有一組受限關鍵字javascript正則表達式匹配排除空間和特殊字符
在我的評論/消息發佈塊不應該允許我定義的限制詞。
例如:關鍵字是「臉譜」。 (臉書),'臉書'這些詞不應該允許發佈。這些詞語不應該允許發佈。這些詞語應該是不允許發佈的。這些詞語不應該允許發佈。
任何想法在Java腳本中使用正則表達式將不勝感激。
我有一組受限關鍵字javascript正則表達式匹配排除空間和特殊字符
在我的評論/消息發佈塊不應該允許我定義的限制詞。
例如:關鍵字是「臉譜」。 (臉書),'臉書'這些詞不應該允許發佈。這些詞語不應該允許發佈。這些詞語應該是不允許發佈的。這些詞語不應該允許發佈。
任何想法在Java腳本中使用正則表達式將不勝感激。
我不知道這是一個好主意,但可以使用
var isFacebook = /f\W*a\W*c\W*e\W*b\W*o\W*o\W*k/i.test(str);
注意,你可以很容易地從一個Word,這使得它易於擴展這樣的模式被檢測到的所有顯示您的話藉助詞典:
var r = new RegExp("facebook".split('').join('\\W*'), 'i');
試試這個正則表達式:
f[^a-zA-Z0-9]?a[^a-zA-Z0-9]?c[^a-zA-Z0-9]?e[^a-zA-Z0-9]?b[^a-zA-Z0-9]?o[^a-zA-Z0-9]?o[^a-zA-Z0-9]?k
它將匹配以下內容:
facebook
f a c e b o o k
f-a-c-e-b-o-o-k
f*a*c*e*b*o*o*k
,但不會匹配以下:
facesbooks
ffaceebbookss
您可以使用正則表達式類似於提供給檢測這樣的字眼之一。
如果你的意思是要篩選特定單詞,用單詞邊界,並與可能的特殊字符分隔單詞的字母所包圍:
var keyword="facebook",
specialCharClass="[*-]",
regex;
regex= new RegExp("\\b" + keyword.replace(/(?:)/g,specialCharClass+'?') + "\\b",'g');
"hi(facebo-ok)pie".replace(regex,"__________"); //returns "hi(__________)pie"
不過,也有始終圍繞詞過濾器方式(faceb00k爲例)。
如果您的目標是阻止,而不是剝離,我將這個過程分爲兩步。
這樣,你分隔您的問題阻止某些單詞列表,並確保您正在檢查實際文字。
必讀:[猥褻過濾器:不好的想法,或令人難以置信的交際不良想法?](http://www.codinghorror.com/blog/2008/10/obscenity-filters-bad-idea-or-incredibly-intercoursing -bad-idea.html) – 2013-04-11 07:57:47
「f * a * c * e * b * o * o * k」是什麼意思?你是指那些有任何字符的人物?我可以看到這造成很大的困難。 「 」看起來我們將不得不面對書籍傢伙「 - DENIED – 2013-04-11 07:58:02
@Evan Knowles - 是的,我的意思是任何特殊字符 – seravee 2013-04-11 08:01:04