如何在字符串中间插入变量

Posted

技术标签:

【中文标题】如何在字符串中间插入变量【英文标题】:How to Insert a variable in the middle of a string 【发布时间】:2011-12-11 23:47:58 【问题描述】:

开始我有UTFS。

试图在字符串中间插入一个变量来填充 Web 视图表单,而不使用附加字符串并使代码变得庞大。我当前的代码是

NSString *html = [webView stringByEvaluatingjavascriptFromString:@" document.DetailView.innerHTML;" @"document.getElementsByName('user_name')[0].value = 'somuser';" @"document.getElementsByName('user_password')[0].value = 'somevar';" @"document.DetailView.submit();" ]

我试过了

NSString *html = [webView stringByEvaluatingJavaScriptFromString:@" document.DetailView.innerHTML;" @"document.getElementsByName('user_name')[0].value = '%@';" @"document.getElementsByName('user_password')[0].value = 'somevar';" @"document.DetailView.submit();" , txtField.text];

但它给我一个构建错误(特别是它正在寻找“]”)。我猜我将不得不使用 stringbyappend 慢慢构建字符串,但我希望有人会遇到这个或有一个解决方法来获得一点运气。这在 c# 中看起来很简单。

【问题讨论】:

【参考方案1】:

NSString 的stringWithFormat 通常是解决这个问题的正确方法。

例子:

[NSString stringWithFormat:@"somejavascript.var = '%@'", otherString];

我在您的第一个和第二个示例中首先看到的错误在这里:...TML;" @"doc...

【讨论】:

【参考方案2】:

您可以使用stringWithFormat: 将变量放入字符串中。在您的情况下,以下方法将起作用:

NSString *html = [webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.DetailView.innerHTML; document.getElementsByName('user_name')[0].value = '%@'; document.getElementsByName('user_password')[0].value = 'somevar'; document.DetailView.submit();" , txtField.text]];

您的代码中还有一个错误是您没有正确编码文本字段值 - 请考虑如果用户输入撇号会发生什么。

但是,以这种方式构建 JavaScript 并不是一个好方法。考虑将 JavaScript 分解为外部 JavaScript 文件 - 这将使其更易于读写。

【讨论】:

你能告诉我如何完成这项工作吗?顺便说一句,即使是 UTFS,我仍然感谢您的回复。 您可以使用NSBundle 找到捆绑包中文件的路径。 NSString 提供了以字符串形式读取文件的便捷方法。或者,您也许可以通过向文档动态添加 `

以上是关于如何在字符串中间插入变量的主要内容,如果未能解决你的问题,请参考以下文章

sqlserver如何在字符串中间增加字符

如何在VueJS中的字符串中插入变量

如何在 Go 中将变量插入到多行(反引号)字符串中?

如何匹配一个字符串,中间有任意词,并将其存储为变量?

我如何从用户那里接收字符串并将其分配到没有任何中间变量的指针数组中?

第69篇 用中间件进行登录验证 cookie版 session版 限制访问频率的中间件 如何由.分割的字符串 获取变量