在单个名称输入中验证两个名称

时间:2018-09-21 20:13:54

标签: php html regex

我遇到一个问题,一个输入必须有一个人输入的两个名称。验证输入的名称是否为字母可以正常工作,如下所示:

func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
   if  textField.text!.first != "#" {
        print(textField.text!.first)
        print(textField.text!)
        textField.text = ""
   }
}

那只会验证一个名字,例如: John 。但是我需要验证字符串是否包含两个单词。就像 James Doe

这是表格输入:

  import geocoder



def get_geocoder(postal_code_from_df):
     # initialize your variable to None
     lat_lng_coords = None
     # loop until you get the coordinates
     while(lat_lng_coords is None):
       g = geocoder.google('{}, Toronto, Ontario'.format(postal_code_from_df))
       lat_lng_coords = g.latlng
     latitude = lat_lng_coords[0]
     longitude = lat_lng_coords[1]
     return latitude,longitude



for i in range(0,len(post_df)):
    post_df['Latitude'][i],post_df['Longitude'][i]=get_geocoder(post_df.iloc[i]['Postcode'])

2 个答案:

答案 0 :(得分:2)

您可以使用以下正则表达式:

^[a-zA-Z'-]+ [a-zA-Z'-]+$

请记住,您不允许使用其他所有字符(例如外语)。因此,最好使用任何可能的单词字符。对于PHP,它将为\p{L}

^\p{L}+ \p{L}+$

您还可以使用多个空格(^\p{L}+ +\p{L}+$)或任何类型的空格的多个空格:

^\p{L}+\s+\p{L}+$

这是一个实时示例:https://regex101.com/r/aUkUKa/2

答案 1 :(得分:1)

您可以使用与任何空白字符匹配的元字符\s

/^[a-zA-Z]+\s[a-zA-Z]+$

^\w+\s\w+$