我所拥有的:我有以下字符串"/.\*n.*/"
我想要的是什么:我想从上面的字符串中删除双引号,看起来像/.\*n.*/
我尝试过的事情:
var filter = "/.\*n.*/";
var modifiedFilter = filter.replace(/"/g, "");
以某种方式该代码无法正常工作。当我在调试模式下查看ModifyFilter时,它仍然显示带双引号"/.\*n.*/"
的字符串。
是因为它的字符串变量和调试值在双引号中显示了字符串?
但是,如果是这种情况,那么我会将这个变量传递给mongodb查询,并且由于双引号导致查询无法正常工作。
我想念什么?
答案 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
标记的正则表达式。