Javascript从具有正斜杠的字符串中删除双引号

时间:2018-07-22 16:13:49

标签: javascript mongodb

我所拥有的:我有以下字符串"/.\*n.*/"

我想要的是什么:我想从上面的字符串中删除双引号,看起来像/.\*n.*/

我尝试过的事情:

var filter = "/.\*n.*/";

var modifiedFilter = filter.replace(/"/g, "");

以某种方式该代码无法正常工作。当我在调试模式下查看ModifyFilter时,它仍然显示带双引号"/.\*n.*/"的字符串。 是因为它的字符串变量和调试值在双引号中显示了字符串?

但是,如果是这种情况,那么我会将这个变量传递给mongodb查询,并且由于双引号导致查询无法正常工作。

我想念什么?

3 个答案:

答案 0 :(得分:-1)

根据您的情况,无法从"中删除"/.\*n.*/";,因为创建字符串是必需的。只有在"/.\*n.*/";表示字符串的实际值的情况下才有可能,并且在这种情况下,赋值应看起来像var filter = '"/.\*n.*/"',并且此问题对于应答者来说是有意义的。

只需使用var modifiedFilter = filter.replace(/\"/g, "")

首先查看在Node REPL上执行的以下语句。

> s = "/.\*n.*/"
'/.*n.*/'
>
> s.replace(/'/g, '')
'/.*n.*/'
>
> s = "'/.\*n.*/'"
'\'/.*n.*/\''
>
> s.replace(/'/g, '')
'/.*n.*/'
>

现在看看下面的代码。

var s = '"/.\*n.*/"'
var output = s.replace(/\"/g, "")
console.log(s) // "/.*n.*/" 
console.log(output) // /.*n.*/ 

答案 1 :(得分:-1)

// To have quotes in your string, assign it like following:
var filter = '"/.\*n.*/"';
// Your code to remove the quotes is correct.
var modifiedFilter = filter.replace(/"/g, "");
// Verify that the code worked
console.log(filter, modifiedFilter)

答案 2 :(得分:-2)

这里的问题是查询,还是试图将字符串基元直接视为正则表达式。与其尝试删除(不存在的)语音标记,不如使用class SeleniumTestCase(StaticLiveServerTestCase): def setUp(self): self.initialize() def tearDown(self): self.selenium.quit() def initialize(self): self.create_test_user() self.run_chrome() self.login() def run_chrome(self): chrome_options = Options() chrome_options.add_argument("--start-maximized") self.selenium = webdriver.Chrome(chrome_options=chrome_options) self.wait = WebDriverWait(self.selenium, 10) @staticmethod def create_test_user(): user = User.objects.create_superuser( username=USERNAME, email=EMAIL, is_active=True, password=PASSWORD) user.save() def login(self): login_success = self.client.login(username=USERNAME, password=PASSWORD) self.assertTrue(login_success) self.selenium.get(self.live_server_url) def test1(self): self.assertTrue(True) 构造函数将其转换为正则表达式。

RegExp

需要对字符串进行切片,因为var filter = "/.\*n.*/"; var modifiedFilter = new RegExp(filter).slice(1, -1); 构造函数接受不带RegExp标记的正则表达式。