如果$(element).text()在字符串中

时间:2017-01-23 19:31:09

标签: javascript jquery

我在做什么......

我想有一个字符串:

var match = "abcd|efhi|jklm|nopq|rstu|vwxyz";

然后检查$(element).text()match.split("|")之一还是仅match内。

我以为我能够做if($('element').text().toLowerCase().match(/^(match)$/)) {然而这不起作用。

问题

为什么我的match()无效?我最好的解决方法是什么?

3 个答案:

答案 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)){}