Quero saber se uma string começa com o caractere / string especificado ou termina com ela no jQuery.
Por exemplo:
var str = 'Hello World';
if( str starts with 'Hello' ) {
alert('true');
} else {
alert('false');
}
if( str ends with 'World' ) {
alert('true');
} else {
alert('false');
}
Se não houver nenhuma função, existe alguma alternativa?
javascript
jquery
string
Naveed
fonte
fonte
Respostas:
Uma opção é usar expressões regulares:
fonte
str.match(/^Hello/)
Mas a forma/regex/.test(str)
é ainda melhor para este caso particular, por stackoverflow.com/questions/10940137/...var isUnavailable = $("#StatusId option:selected").text().match("^Unavailable - ");
- por que isso retorna nulo quando a opção selecionada é "Indisponível - Outro"?Para começar com, você pode usar o indexOf:
...
ref
e você pode fazer as contas com base no comprimento da string para determinar 'endswith'.
fonte
lastIndexOf()
para o final;)("1234".lastIndexOf('Hello') == "1234".length - 'Hello'.length)
resulta em verdadeiro.Não há necessidade de jQuery para fazer isso. Você poderia codificar um wrapper jQuery, mas seria inútil, portanto, você deveria usar melhor
como o método match () está obsoleto.
PS: o sinalizador "i" no RegExp é opcional e significa distinção entre maiúsculas e minúsculas (portanto, também retornará true para "hello", "hEllo" etc.).
fonte
Você realmente não precisa do jQuery para essas tarefas. Na especificação ES6, eles já têm os métodos prontos para uso , beginWith e endsWith .
Atualmente disponível no FF e Chrome . Para navegadores antigos, você pode usar seus polyfills ou substr
fonte
Você sempre pode estender o
String
protótipo assim:E use-o assim:
fonte
O ES6 agora suporta o método
startsWith()
eendsWith()
para verificar o início e o final destring
s. Se você deseja dar suporte aos mecanismos pre-es6, considere adicionar um dos métodos sugeridos aoString
protótipo.fonte
()[].
) interromperá seus métodos de polyfill. Você precisa preparar as strings com uma função regex-escape. Ou melhor ainda: Use uma batalha testado polyfill decore-js