我通过用户界面中的textarea获取JavaScript代码,然后在我的应用程序中执行代码,如下所示:
用户输入:
text = 'I am fine!!! ';
return text.replace(/(.+)\s+$/g, '$1’);
但是,在rails中,转义字符会添加到textarea中的用户输入:
"text = 'hello how are you? ';\\d\r\nreturn text.replace(/(.+)\\s+$/g, '$1’);"
因此execute_script语句会出现“非法字符”错误。
browser.execute_script("text = 'hello how are you? ';\\d\r\nreturn text.replace(/(.+)\\s+$/g, '$1’);")
如何在不使用正则表达式的情况下摆脱转义字符,以便execute_script运行正常?
答案 0 :(得分:0)
检查出来:
browser.execute_script("text = 'hello how are you? '; return text.replace(/(.+)\\s+$/g, '$1');")
<强> BUT!为什么在地球上你需要它?
这是一个非常奇怪的案例,我正在为Dave的评论添加+1。做一些javascript魔术不是典型的用户动作。试着再想一想你在做什么。
答案 1 :(得分:0)
您是否考虑过尝试http://spdevelopment:8282/studentheader/SitePages/Home.aspx? 以下是我可能采用的方法:
test = "\\d\r\nreturn text.replace(/(.+)\\s+$/g, '$1’);"
=> "\\d\r\nreturn text.replace(/(.+)\\s+$/g, '$1’)"
test.gsub!(/[\d\n\r\\d]/, '')
=> "return text.replace(/(.+)s+$/"
如果您不想覆盖它,您还可以使用String#gsub!来返回修改过的副本
test.gsub(/[\d\n\r\\d]/, '')
=> "return text.replace(/(.+)s+$/"
您可以明显自定义正则表达式以自定义您的需求。还要注意智能引号,例如1美元的右引号,因为’
与'