小编Ka *_*Mok的帖子

如何查找和替换特定字符,但仅限于引号?

问题:我有成千上万的文档,其中包含我不想要的特定字符.比如角色a.这些文档包含各种字符,但a我要替换的是双引号或单引号.

我想找到并替换它们,我认为需要使用正则表达式.我正在使用VSCode,但我对任何建议持开放态度.

我的尝试:我能够找到以下正则表达式匹配包含其中的值的特定字符串().

".*?(r).*?"
Run Code Online (Sandbox Code Playgroud)

但是,这仅突出显示整个报价.我想只突出这个角色.

任何解决方案,可能在正则表达式之外,都是受欢迎的.

示例结果:给定,字符是a,find替换为b

Somebody once told me "apples" are good for you => Somebody once told me "bpples" are good for you

"Aardvarks" make good kebabs => "Abrdvbrks" make good kebabs

The boy said "aaah!" when his mom told him he was eating aardvark => The boy said "bbbh!" when his mom told him he was eating aardvark

regex string visual-studio-code

13
推荐指数
1
解决办法
3087
查看次数

如何在测试中模拟NavParams?

这可能只是一个Ionic 2问题,因为我没有在Angular 2文档中看到NavParams,但是有些概念可能会翻译,所以我标记了两者.

鉴于我navparams.get('somekey')为了侦听传入的参数而调用,在测试中模拟NavParams是很棘手的.

例如,以下是我目前的工作方式:

export class NavParamsMock {
  public get(key): any {
    return String(key) + 'Output';
  }
}
Run Code Online (Sandbox Code Playgroud)

这适用于真正的基本测试,但如果我有一个组件,我必须测试它gets是一种特定类型Object,例如a User.

然后,我可以做类似的事情

export class NavParamsMock {
  public get(key): any {
    if (key === 'user') {
       return new User({'name':'Bob'})
    }
    return String(key) + 'Output';
  }
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您想get(user)在另一个测试中使用,或者甚至是另一个组件的规范,则这不起作用.假设您在两个不同的组件中使用NavParams,并且当您这样做时它们都期望不同的结果get(user),模拟变得越来越棘手.

有没有人找到这种情况的解决方案?

unit-testing ionic2 angular2-testing angular

10
推荐指数
2
解决办法
3400
查看次数

如何在Rails中通过电子邮件发送自生成的csv文件而不保存它?

在我的Rails应用程序中,我使用模型方法中的CSV.open块创建CSV文件.

class SomeModel
   def self.write_csv
      CSV.open("my_file_name.csv", "w") do |csv|
         ### inserts lines into the file ###
      end
   end
end
Run Code Online (Sandbox Code Playgroud)

在我的控制器中,我有一个动作将文件发送到用户输入的电子邮件地址

def some_controller_method
   SomeModel.write_csv
   email = params[:email]

   JobMailer.send_csv(email).deliver
end
Run Code Online (Sandbox Code Playgroud)

JobMailer,我直接通过文件名引用文件,因为CSV.openSomeModel.write_csv将文件保存到主目录的磁盘上.

def send_csv(email)
    attachments['my_file_name.csv'] = {mime_type: 'text/csv', content: File.read(Rails.root.join('your_file.csv'))}
    mail(to: email, subject: 'My subject', body: 'My body.')
end
Run Code Online (Sandbox Code Playgroud)

目前,当新的请求进入时,应用程序将重写该文件,我相信当我在Heroku上进行生产时,它会在一段时间后自动删除它.

回顾一下:

  1. 生成CSV
  2. 通过邮件发送电子邮件
  3. 删除该文件

可以在不将其保存到磁盘的情况下完成吗?有没有更好的办法?

csv ruby-on-rails heroku

9
推荐指数
1
解决办法
4532
查看次数

如何重写 Github 上已有的共享 Git 历史记录?

我一直在阅读有关压缩/重新定位/修改已经与您的团队成员共享的提交的危险。如果团队要求进行这种更改,我们该怎么做?

是不是每个人都停止提交文件,只让一个人重写历史,推送到 GitHub,然后让每个人拉取 + 恢复工作?

git github

7
推荐指数
1
解决办法
1095
查看次数

如何使用 Apollo 后端在 TypeScript Angular 应用程序中输入部分类型?

编辑:我正在寻找来自 Graphql-Angular 社区的权威和来源答案,以提供最佳实践示例。

例如,我们在 TypeScript 中定义了一个 Person 类型:

interface Person {
  firstName: string;
  lastName: string;
  birthDate: Date;
  age: number;
  ...and many more attributes
}
Run Code Online (Sandbox Code Playgroud)

假设您有一个组件,并且根据 graphql 的口头禅,您只获取您需要的内容。没有过度获取和不足获取。

我只需要PersonfirstNameage所以我在 Apollo 查询中进行了它。

现在,我如何输入我刚刚获取的这个对象?

该结构是 的一部分Person,所以我倾向于简单地这样做Partial<Person>。这使得所有声明的属性都是Person可选的。

但这不是这里发生的事情。Person我们仅使用age和来提取 的一部分firstName。就是这样。

除了制作另一个界面之外,是否没有其他方法可以正确输入:

interace MyComponentPerson {
  firstName: string;
  age: number;
}
Run Code Online (Sandbox Code Playgroud)

有官方的风格指南/方法来做到这一点吗?我问过他们,但没有得到答复。也查看了文档,没有看到任何与此相关的内容。

typescript apollo graphql angular

7
推荐指数
1
解决办法
1562
查看次数

使用 Active Record 存在什么区别?与 find_by 相比?

在我的模型中,我首先检查Sudoku数据库中是否存在记录,然后再获取它solution或创建它。

if Sudoku.exists?(puzzle: puzzle)
  return Sudoku.find_by(puzzle: puzzle).solution
else
  **solve it and save it into the db**
end
Run Code Online (Sandbox Code Playgroud)

这样做有什么区别:

if Sudoku.find_by(puzzle: puzzle)
  return Sudoku.find_by(puzzle: puzzle).solution
else
  **solve it and save it into the db**
end
Run Code Online (Sandbox Code Playgroud)

日志 exists?

Sudoku Exists (0.0ms)  SELECT  1 AS one FROM "sudokus" WHERE "sudokus"."puzzle" = $1 LIMIT 1  [["puzzle", "390820700801500069020160403002096058935000602060752030703941000200037590019000347"]]
  Sudoku Load (0.0ms)  SELECT  "sudokus".* FROM "sudokus" WHERE "sudokus"."puzzle" = $1 LIMIT 1  [["puzzle", "390820700801500069020160403002096058935000602060752030703941000200037590019000347"]]
Completed 200 OK in 8ms (Views: 0.2ms | …
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails

4
推荐指数
1
解决办法
1247
查看次数

即使在关闭窗格上的最后一个选项卡后,如何使 Atom 分屏“保持”?

在 Sublime Text 3 中,当您启动分屏时,每个窗格都可以有空容器。然而,在 Atom 中,当您关闭最后一个时,它就会消失。这有什么技巧吗?

atom-editor

4
推荐指数
1
解决办法
596
查看次数

如何访问嵌套的SASS变量?

此.scss文件中的几种颜色定义如下:

$colors: (
  primary :   #cd0e11,
  secondary:  #23aa0b,
  danger:     #f53d3d,
  light:      #f4f4f4,
  dark:       #222
);
Run Code Online (Sandbox Code Playgroud)

我如何访问它们?说我想把东西设置为主要的.

我试过了:

h1 {
color: $colors:primary
}
Run Code Online (Sandbox Code Playgroud)

这是Ionic 2,所以它可能是一个特定于框架的东西.

sass ionic-framework ionic2

4
推荐指数
1
解决办法
853
查看次数

Angular 2/Ionic 2 TypeError:zxcvbn_1.default不是函数

使用Jasmine和Karma进行测试,我正在使用该zxcvbn库进行一些密码强度计算.当我尝试通过调用updateScore()下面的函数来运行规范时,这会失败.

private updateScore(): void {
    const analysis = zxcvbn(this.password)
    this.score = analysis.score;
    this.comment = analysis.feedback.warning || analysis.feedback.suggestions[0];
  }
Run Code Online (Sandbox Code Playgroud)

在导入中,我正在做 import zxcvbn from 'zxcvbn';

这适用于应用程序,甚至在我构建和模拟时,但在规范中,它给了我这个错误:

FAILED TESTS:
  PasswordStrengthChecker
    ? should update the score when password changes
      Chrome 55.0.2883 (Mac OS X 10.11.6)
    TypeError: zxcvbn_1.default is not a function
        at PasswordStrengthChecker.updateScore (webpack:///src/components/password-strength-checker/password-strength-checker.ts:25:28 <- src/test.ts:93920:40)
        at PasswordStrengthChecker.ngOnChanges (webpack:///src/components/password-strength-checker/password-strength-checker.ts:20:9 <- src/test.ts:93916:14)
        at Object.<anonymous> (webpack:///src/components/password-strength-checker/password-strength-checker.spec.ts:27:13 <- src/test.ts:185997:18)
        at ZoneDelegate.invoke (webpack:///~/zone.js/dist/zone.js:232:0 <- src/test.ts:183822:26)
        at ProxyZoneSpec.onInvoke (webpack:///~/zone.js/dist/proxy.js:79:0 <- src/test.ts:130574:39)
        at ZoneDelegate.invoke (webpack:///~/zone.js/dist/zone.js:231:0 <- …
Run Code Online (Sandbox Code Playgroud)

ionic-framework ionic2 angular2-testing angular

4
推荐指数
1
解决办法
555
查看次数

如何为一个BehaviorSubject / Observable服务的spyOn属性?

首先,spyOnProperty给我Property user does not have access type get这一行:spyOnProperty(userService, 'user', 'get').and.returnValue(Observable.of(adminUser));

我有一个具有这样的user属性的UserService :

export class UserService {
  user: BehaviorSubject<User> = new BehaviorSubject(new User());
}
Run Code Online (Sandbox Code Playgroud)

我测试的组件需要根据的结果更改行为userService.user.subscribe。因此,我需要能够监视user

我曾经想过的一个想法是,例如getUser()在类UserService上编写一种方法getter ,并且不要user通过属性进行访问。

但这似乎有些极端。

有任何想法吗?

jasmine karma-jasmine angular

4
推荐指数
1
解决办法
3436
查看次数

在Angular中为NativeScript设置不同的环境变量的最佳方法是什么?

在Angular中,实际上是使用env var加载到应用程序中的,environment.ts这是cli的一部分。

在NativeScript中,这似乎不适用于NativeScript cli。

最好的方法是什么?

nativescript angular2-nativescript

3
推荐指数
1
解决办法
2170
查看次数

你应该在 switch case 循环中使用 break 吗?

以 FizzBu​​zz 为例,for 循环中的这个 switch case 在每个 case 之后使用 break。

for (num = 1; num <= 100000; num ++) {
    switch (true) {
        case (num % 15 == 0):
            console.log("FizzBuzz");
            break;
        case (num % 3 == 0):
            console.log("Fizz");
            break;
        case (num % 5 == 0):
            console.log("Buzz");
            break;
        default:
            console.log(num);
            break;
    }
}
Run Code Online (Sandbox Code Playgroud)

在 Mozilla 的文档中,他们说...

与每个 case 标签相关联的可选 break 语句确保程序在执行匹配的语句后中断 switch 并在 switch 之后的语句处继续执行。如果省略 break ,程序将在 switch 语句中的下一个语句处继续执行

我假设它们的意思是当脚本检查 num % 15 == 0 时,如果没有中断并且即使它匹配 true,它也会转到 …

javascript loops switch-statement

-1
推荐指数
1
解决办法
2279
查看次数