escaping 相关问题

转义是对字符或字符集应用替代含义的过程。

Antlr 处理带有转义字符的字符串

我有以下声明: 返回 ”-\-”; 返回 '- -'; antlr4 为我挑选的字符串是: 字符串字面量: ”-\-”; 字符串字面量: '- -'; 我打印这个字符串: &qu...

回答 0 投票 0

为什么最后转义符前的字符串显示文件有病毒?

#include 无效主要(){ printf("h"); printf("h2"); } 我不知道为什么会这样,我正在使用 Bloodshed.inc 的 DevC++ 编译器 请前...

回答 1 投票 0

为什么最后转义符前的字符串显示文件有病毒?

#include 无效主要(){ printf("h"); printf("h2"); } 我不知道为什么会这样,我正在使用 Bloodshed.inc 的 DevC++ 编译器 请前...

回答 0 投票 0

在 Python 中不带引号转义 Linux 路径,正确的方法

我在这里看到这个问题的大量答案明显不正确或部分正确但没有考虑到小范围之外的任何差异。 这是我的路径: &q...

回答 1 投票 0

如何手动转义将在 bash shell 中运行的 java 字符串中的敏感字符

我将在 java 程序中接收使用输入作为字符串,然后在 bash shell 上运行以执行。我的问题是如何在传递给 bash shel 的字符串中手动输入反斜杠...

回答 1 投票 0

JMeter 在字符串化 json 上断言的问题:“值预计为 {\"host\": \"testHost221\"},但发现 {"host": "testHost221"}"

我正在使用 Jmeter 来测试两件事。 大字符串(多个字符作为一个值,例如“

回答 0 投票 0

如何在 java 中将 '(' 转换为 unicode(\u0028)?

我想将以下字符串转换为转义字符串。 我使用 StringEscapeUtils.escapeJava() 函数。 我试图将它转换为该函数,但它不是我预期的值。 我想要的原因...

回答 2 投票 0

grep 当文件中存在 esc 字符时

我正在尝试使用 grep 从文本文件中选择一些行,然后对其进行一些操作 当文件包含类似 任务 [somedate] I_want:[this],Hz[100] 我可以做类似...

回答 0 投票 0

我需要从 Java 中的字符串中获取任何 ASCII 字符,但我遇到转义问题

在 java 中,我从外部资源获取一个字符串,它是一个用 '' 包裹的字符。例如。 'A' 'B' '\n' '\t' 我希望能够从这个字符串中获取一个字符,在这种情况下 ...

回答 1 投票 0

处理 Python 3 输入函数中的转义字符?

我正在尝试运行一个程序,该程序将输入纸牌游戏卡,将它们附加到列表中,然后将文件导出为 .txt 文件和 .csv 文件。该程序有效,但无法...

回答 1 投票 0

INSERT INTO 只使用转义的单引号......神秘?

我有一个非常奇怪的问题。 有一个 PHP 文件,如果我在行名称中使用`,我只能将其插入到 MySQL 表中,但在其他 PHP 上,它不需要它并且插入到同一个表中工作

回答 1 投票 0

jQuery 选择器值转义

我有一个包含一系列选项的下拉列表: a'b] eas... 我有一个包含一系列选项的下拉列表: <select id=SomeDropdown> <option value="a'b]&lt;p>">a'b]&lt;p></option> <option value="easy">easy</option> <select> 注意选项值/文本包含一些讨厌的东西: 单引号 右方括号 转义 html 我需要删除 a'b] 选项,但我没有写选择器。都不是: $("#SomeDropdown >option[value='a''b]&lt;p>']"); 或 $("#SomeDropdown >option[value='a\'b]&lt;p>']"); 正在返回选项。 使用“value=”选择器时转义值的正确方法是什么? 我用这个函数来转义 jquery 选择器。它基本上避开了所有有问题的东西,但可能过于激进。 函数 escapeStr(str) { 如果(海峡) 返回 str.replace(/([ #;?%&,.+*~\':"!^$[\]()=>|\/@])/g,'\$1'); 返回海峡; } 我不认为你可以。它应该是: #SomeDropdown >option[value='a\'b]<p>'] 这确实可以用作 CSS 选择器(在现代浏览器中)。用 JavaScript 字符串文字表示,您自然需要另一轮转义: $("#SomeDropdown >option[value='a\\'b]<p>']") 但这在 jQuery 中不起作用,因为它的选择器解析器不完全符合标准。它使用此正则表达式来解析 value 条件的 [attr=value] 部分: (['"]*)(.*?)\3|)\s*\] 是包含开场引号的组,奇怪的是允许有多个开场引号,或者根本没有开场引号。这 。*?然后可以解析任何字符,包括引号,直到它遇到第一个']'字符,结束匹配。没有反斜杠转义 CSS 特殊字符的规定,因此您无法在 jQuery 中匹配任意字符串值。 (再一次,正则表达式解析器输了。) 但好消息是您不必依赖 jQuery 选择器;您可以使用非常好的 DOM 方法,特别是 HTMLSelectElement.options: var select= document.getElementById('SomeDropdown'); for (var i= select.options.length; i-->0;) { if (select.options[i].value=="a'b]<p>") { // do something with option } } 这比让 jQuery 费力地解析和实现您的选择器要简单和快很多倍,而且您可以使用您喜欢的任何值字符串,而不必担心转义特殊字符。 将.filter()与自定义功能一起使用。 txt 应该包含您讨厌的字符串,或者您可以将 indexOf 替换为您选择的任何其他函数。 $("#SomeDropdown option") .filter(function(i){ return $(this).attr("value").indexOf(txt) != -1; }) .remove(); 我发现你可以使用 \ 来转义选择器。将其视为正则表达式的一个 \ 和从正则表达式逃逸的一个。 例子: $(this).find('input[name=user\\[1\\]\\[name\\]]').val(); 如果您尝试以编程方式进行转义,则只需要一组斜杠。这行不通: var key = 'user[1][name]'; $(this).find('select[name=' + key + ']'); 但这将: var key = 'user\[1\]\[name\]'; $(this).find('select[name=' + key + ']'); 这也是: $(this).find('select[name=user\\[1\\]\\[name\\]]'); 您可以使用此 javascript 构建正确转义的选择器: if(key.indexOf('[') !== -1) { key = key.replace(/([\[\]])/g, "\\$1"); } 这是一个显示一些奇怪行为的 JS Fiddle: http://jsfiddle.net/dH3cV/ 问题是由于HTML实体; “&lt;”被浏览器视为“<”。 bobince提供的例子也是如此;请注意,以下不适用于 Win + FF3 上的 jQuery 1.32: var select= document.getElementById('SomeDropdown'); for (var i= select.options.length; i-->0;) { if (select.options[i].value=="a'b]&lt;p>") { alert('found it'); } } 但是,将实体改成字面量确实会找到想要的值: var select= document.getElementById('SomeDropdown'); for (var i= select.options.length; i-->0;) { if (select.options[i].value=="a'b]<p>") { alert('found it'); } } 当然,这里有一个问题,因为您指定的值不是您要查找的确切值。这也可以通过添加辅助函数来纠正: function html_entity_decode(str) { var decoder = document.createElement('textarea'); decoder.innerHTML = str; return decoder.value; } 现在在一起: var srcValue = html_entity_decode("a'b]&lt;p>"); var select= document.getElementById('SomeDropdown'); for (var i= select.options.length; i-->0;) { if (select.options[i].value == srcValue) { alert('found it'); } } 现在,您正在搜索的输入值与选择元素的值完全匹配。 这也可以使用 jQuery 方法编写: var srcValue = html_entity_decode("a'b]&lt;p>"); $($('#SomeDropdown').attr('options')).each(function() { if (this.value == srcValue) { $(this).remove(); } }); 最后,作为一个插件,因为它们很容易制作: jQuery.fn.removeByValue = function( val ) { var decoder = document.createElement('textarea'); decoder.innerHTML = val; var srcValue = decoder.value; $( $(this)[0].options ).each(function() { if (this.value == srcValue) { $(this).remove(); } }); return this; }; $('#SomeDropdown').removeByValue("a'b]&lt;p>"); jQuery.escapeSelector() 是在 jQuery 3 中引入的。要将选项与问题中的值 a'b]&lt;p> 匹配,您可以使用: $("#SomeDropdown > option[value='" + $.escapeSelector("a'b]<p>") + "']") 一般来说,使用 jQuery.escapeSelector() 是像 $('#' + $.escapeSelector(id)) 这样的好习惯,其中变量 id 可能包含特殊的 CSS 符号。 jQuery 的论坛对此有一个很好的解决方案: https://learn.jquery.com/using-jquery-core/faq/how-do-i-select-an-element-by-an-id-that-has-characters-used-in-css-符号/ 他们建议的这个略微修改的版本也是空安全的。 function jqid (id) { return (!id) ? null : '#' + id.replace(/(:|\.|\[|\]|,)/g, '\\$1'); } 安全转义CSS字符串并不容易,不能用简单的正则表达式来完成。 您可以使用CSS.escape() . 并非所有浏览器都支持此功能,但存在 polyfill.

回答 0 投票 0

通过 runas.exe 执行的 PowerShell 命令

我需要通过runas.exe来执行PS命令。 PS 命令单独工作,但我无法使其作为 runas.exe 调用工作。似乎是一个转义问题,但是引号+双引号不起作用

回答 1 投票 0

批处理文件自动提升使用 powershell 并且不破坏参数但调用问题

我正在尝试实现提出的功能 mklement0 关于这个答案 我的目标是将其实现为可重用的批处理子函数 但在此之前,我遇到了一种行为不一致的模式......

回答 1 投票 0

讲英语的人在字符串文字中使用最多的字符是什么字符,例如`“hello world”`?

有些人错误地认为官方列出的可打印字符是说英语的程序员使用的所有字符,但还有其他字符。 其他常用字符...

回答 1 投票 0

为什么 Python 不能用转义引号解码这个有效的 JSON?

我有这个几乎是 JSON 的东西,里面只有类似于 JSON 的东西: 10 月 21 日 22:39:28 GMT [TRACE] (Carlos-288) org.some.awesome.LoggerFramework RID=8e9076-4dd9-ec96-8f35-bde193498f: { ...

回答 0 投票 0

让 bcp.exe 逃脱终结者

我需要使用 SQL Server 2000 的 BCP 实用程序导出一些数据。有时我的数据包含字符,例如和 ,我需要用作列和行终止符。我如何让 BCP 退出...

回答 5 投票 0

Wordpress 特殊字符腐败

总结:Wordpress 不处理特殊的 HTML 字符(非 ASCII 等),它用一个? Wordpress:最近的版本 2022-23 它发生在实时版本和

回答 0 投票 0

如何在 Java 中将字符串格式化程序显示为纯文本?

我在 Java 中有一个字符串,其中包含特殊字符,例如 并且被解释为控制字符并在显示时生成新行和制表符。我想展示这些特别的

回答 2 投票 0

忽略 python 中的反斜杠字符

如果我有: 一个=“前进” b = "wd" 我怎么能忽略“\”这样的东西 打印(b中的a) 可以评估为真吗?

回答 4 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.