我想有一个字符串:
var match = "abcd|efhi|jklm|nopq|rstu|vwxyz";
然后检查$(element).text()
是match.split("|")
之一还是仅match
内。
我以为我能够做if($('element').text().toLowerCase().match(/^(match)$/)) {
然而这不起作用。
为什么我的match()
无效?我最好的解决方法是什么?
答案 0 :(得分:3)
您要解决的最佳方法是指定匹配
的正则表达式std::set::swap
请注意,我添加var match = /^(abcd|efhi|jklm|nopq|rstu|vwxyz)$/i;
表示不区分大小写,因此您可以摆脱i
toLowerCase()
答案 1 :(得分:2)
我的方法没有使用RegEx
.386
.model flat,stdcall
.stack 4096
ExitProcess proto,dwExitCode:dword
n=1000
sqrt=32
.data
sieveArray DWORD n DUP(0)
primeNumbers DWORD n DUP(0)
limit DWORD 0
varInnerLoop DWORD 0 ;variable j
falseValue DWORD 0
primerHelper DWORD 1
.code
main PROC
mov ecx,LENGTHOF sieveArray-1
mov edi,OFFSET sieveArray+TYPE DWORD*2
mov eax,1
fillUp:
mov [edi],eax
add edi,TYPE DWORD
loop fillUp
checkForPrime:
mov edi,OFFSET sieveArray+TYPE DWORD*2 ;reset for iteration
mov esi,[edi] ;pointer helper
mov eax,TYPE DWORD ;offset helper
mov ebx,1 ;counter for loopOverNumbers reference
mov ecx,sqrt-1 ;sqrt(limit)+1 `limit`¨, -1 because index 0 = index 1, counter
mov edx,1 ;outer loop variable helper for inner loop
loopOverNumbers:
cmp ebx,ecx
je iterateOverPrimes ;take me out of the loop because I have iterated over range(1,edx)
cmp esi,1
pushad ;save my flags for outer loop, specially ebx and ecx
je iterateOverFactorsSetUp
continueIteration:
popad
add edi,eax
mov esi,[edi]
inc edx
loop loopOverNumbers
iterateOverFactorsSetUp:
mov eax,1 ;factor for inner loop
mov ecx,n+1
iterateOverFactors:
cmp ebx,ecx
je continueIteration
push edx
push eax
inc eax ;pointer must increment to reflect real value
inc edx ;pointer must increment to reflect real value
imul edx,eax
mov varInnerLoop,edx ;j = i * factor
cmp varInnerLoop,n ;if (j > limit): break
jg continueIterationHelper
imul edx,TYPE DWORD
mov edi,OFFSET sieveArray
add edi,edx
mov eax,0
mov [edi],eax ;reset to old value before pointer
pop eax
pop edx
inc eax
loop iterateOverFactors
continueIterationHelper: ;have to pop eax and edx in order to get original values when returning to
pop eax
pop edx
jmp continueIteration
iterateOverPrimes:
mov eax,TYPE DWORD
mov ecx,n+1 ;limit helper
mov ebx,0
mov edi,OFFSET sieveArray+TYPE DWORD
checkifPrime:
mov esi,[edi]
cmp esi,1
pushad
je appendToPrimeArray
continueSearch:
popad
add edi,eax
inc ebx
loop checkifPrime
jmp searchDone
appendToPrimeArray:
mov eax,TYPE DWORD
mov edi,OFFSET primeNumbers
imul eax,primerHelper ;pointer for primeNumbers helper
add edi,eax
inc ebx
mov [edi],ebx
inc primerHelper
jmp continueSearch
searchDone:
INVOKE ExitProcess,0
main ENDP
END main
答案 2 :(得分:0)
要匹配变量字符串,可以创建Regexp对象:
var match = "^(abcd|efhi|jklm|nopq|rstu|vwxyz)$";
var reg = new RegExp(match, 'g');
if($('element').text().toLowerCase().match(reg)) {}
使其不区分大小写:
var match = "^(abcd|efhi|jklm|nopq|rstu|vwxyz)$";
var reg = new RegExp(match, 'ig');
if($('element').text().match(reg)){}