私は検索ボックスを持っており、この検索の値を取得し、data- *値が検索値から始まるすべてのDIVに一致する必要があります。正規表現は、指定された一連の文字または数字を含むすべての文字列と一致します
ケース:
検索値:201
万一試合:data-year="2009"
、data-year="2001"
これは私が出てくるものです:data-year="2011"
、data-year="2012"
、data-year="2013"
がを故障した場合それでf ar:
\\b(?=\\w*[" + token + "])\\w+\\b
token
は、検索ボックスからの動的値です。したがって、私はRegExpを使用する必要があります
これは動作しますが、2または0または1(私の理解のために)を含むすべての値と一致します。そのため、2009年も有効です。 :/
私もちょうど世界の先頭ではなく、明らかに私はここで何かが欠けてるcharacthersを一致させるために先頭にキャレットを追加しよう:
^\\b(?=\\w*[" + token + "])\\w+\\b
全体のコードは次のとおりです。
var token = '200'; // should fail
var tokenTwo = '201'; // shoudl work
var dataAtt = $('#div').data('year').toString();
var regexExpression ="^\\b(?=\\w*\\d*[" + token + "])\\w+\\d+\\b";
var regEXPRES = "^.*" + token + ".*$";
var regex = new RegExp(regexExpression, "i");
if(dataAtt.match(regex)){
console.log(dataAtt);
alert('yey!!!');
} else {
alert('nope!!)')
}
、ここJsFiddle http://jsfiddle.net/tk5m8coo/
psです私はtoken
が他の文字の前に来るか、またはそれに続くケースを持ってはいけませんが、もし誰かがこれをどうやってチェックするかが大好きであれば。 s2015のようなタイプミスの場合にのみ。
は、この使用して正規表現と周りの混乱をしないでください - あなたの入力から適切な属性セレクタを作成し、それはあなたに関連するすべての要素を取得する1つのjQueryの呼び出しです。 https://api.jquery.com/category/selectors/attribute-selectors/ – CBroe
属性セレクタを使用することに同意しますが、現代のブラウザが行うことができる何かのためにjQueryを使用する必要はありません。 'document.querySelectorAll( '[data-year^=" 201 "]')' – hsan
あなたの答えに感謝します。なぜあなたは属性セレクタを使う方が良いと思いますか? –