![](/img/trans.png)
[英]Javascript Regular Expression to search a multiline textarea for an expression
[英]javascript regular expression .search
我對.search有一點問題
這是代碼
// filter - posts
jQuery('.filter_by').live('click',function(){
var target_fi = jQuery(this);
var target_cat = target_fi.parents('.cat').children('.namechanger').val();
target_fi.next().fadeIn(100);
var cat_all = target_fi.prev().find("option").each(function(i){
if(jQuery(this).attr('data-cats').search(target_cat) == -1){
jQuery(this).css({"display":"none"});
}
});
});
我想將變量target_cat
與.search一起使用
我不能這樣做.search(/target_cat/)
如果target_cat
的字符串值中生成正則表達式,則可以執行以下操作:
var mySearchTerm = new RegExp(target_cat);
...
if(jQuery(this).attr('data-cats').search(mySearchTerm) == -1){
您需要創建RegExp
對象並將其傳遞給search
方法
if(jQuery(this).attr('data-cats').search(new RegExp(target_cat)) == -1 )){
...
}
要將任何內容轉換為正則表達式,只需將其放入構造函數中即可:
var something =“ foobar”; var expression = new RegExp(something,'i');
注意標志的第二個參數。 有關構造函數的更多信息,請參見RegExp ,有關事物如何工作的詳細信息,請參見正則表達式 。
如果你的something
包含“特殊字符”(如|
, ?
, {
),您需要逃避他們,如果你希望它們字面上的意思( /foo?/
與/foo\\?/
這是一個為您保留所有相關字符的功能:
function escapeRegEx(string) {
return string.replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.