Quero substituir aspas simples em uma string. isso não inclui aspas simples de início e fim. por exemplo:
Entradas : estes são alguns exemplos de entradas
myString = "'O'Nel'"
myString = "'OR'Nel, Dan' "
myString = "'OA'Nel'Test, John; random's t'est'"
Saída este é o resultado que eu quero
myString = "'O''Nel'"
myString = "'OR''Nel, Dan' "
myString = "'OA''Nel''Test, John; random''s t''est'"
o que tentei até agora . este código substituirá aspas simples de início e fim, o que eu não quero. Quero manter o código simples, talvez haja uma função buildin
myString = myString.Replace("'","''")
output myString = "''O''Nel''"
Quase sempre se trata de preparar a string para uso em uma instrução SQL. Se não é isso que está acontecendo aqui, você pode desconsiderar isso. Mas se for, você quer seguir uma direção completamente diferente. Você não precisa alterar as strings e, em vez disso, deve fazer algo mais parecido com isto:
Observe que em nenhum momento no código acima (mesmo no servidor de banco de dados) o conteúdo é
myString
substituído na instrução SQL. Os dois são mantidos completamente separados, portanto não existe possibilidade de injeção.Como bônus, o banco de dados pode armazenar em cache o plano de execução, o que significa que você também pode obter respostas mais rápidas do banco de dados (não é necessário reconstruir essa parte todas as vezes) e economiza trabalho e memória criando novas strings no cliente.
Essa é uma das poucas coisas que são importantes demais para serem erradas, mesmo para prática, aprendizado e código de prova de conceito .
Se todas as strings ypour tiverem aspas simples no início e no final, você precisará de algumas funções básicas de string
Se você precisar da string em uma instrução sql, você pode ver aqui onde Joe já escreveu a mesma resposta. Como faço para criar uma consulta SQL parametrizada? Por que eu deveria? então você não precisa escapar das aspas simples
Saída