Encontrei várias perguntas semelhantes, mas não me ajudou. Então, eu tenho este problema:
var xxx = "victoria";
var yyy = "i";
alert(xxx.match(yyy/g).length);
Não sei como passar variável no comando match. Por favor ajude. Obrigado.
javascript
variables
match
mesnicka
fonte
fonte
SyntaxError: Invalid regular expression: /c++/: Nothing to repeat
Respostas:
Embora a função match não aceite literais de string como padrões regex, você pode usar o construtor do objeto RegExp e passá-lo para a função String.match:
Qualquer sinalizador de que você precisa (como / g) pode ir para o segundo parâmetro.
fonte
match
método não for umRegExp
objeto, internamente oRegExp
construtor será invocado usando esse valor, então você pode usar um padrão de string , por exemplo:"a123".match("\\d+")[0] === "123";
Você deve usar o objeto RegExp se o seu padrão for string
Se o padrão não for uma string dinâmica:
fonte
Por exemplo:
Ou
fonte
Exemplo. Para encontrar o número de vogais dentro da string
fonte
para mim de qualquer forma, ajuda ver usado. acabei de fazer isso usando o exemplo "re":
fonte
fonte
String.prototype.match
método espera apenas um argumento . Usar oRegExp
construtor, como sugere @Chris, é a forma preferida.